diff --git a/Gemfile b/Gemfile
index 6a46010..c54b0dc 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,6 +2,7 @@ source 'https://rubygems.org'
 
 #rails gem
 gem 'rails', '~> 4.1.0'
+gem 'sanitize'
 
 #assets and templates
 gem 'sass-rails', '~> 4.0.2'
diff --git a/app/controllers/admin/authorizations_controller.rb b/app/controllers/admin/authorizations_controller.rb
index e5736a0..8d1c82c 100644
--- a/app/controllers/admin/authorizations_controller.rb
+++ b/app/controllers/admin/authorizations_controller.rb
@@ -10,7 +10,7 @@ class Admin::AuthorizationsController < OrbitAdminController
         @objects = @module_app.categories rescue nil
       end
     elsif @module_apps && @module_app.key == "authorization"
-        redirect_to "/admin/authorizations/#{@module_apps.first.key}"
+        redirect_to admin_authorizations_path(@module_apps.first.key)
     else
         redirect_to  :root
     end
diff --git a/app/controllers/admin/members_controller.rb b/app/controllers/admin/members_controller.rb
index 48f8293..2a7fde6 100644
--- a/app/controllers/admin/members_controller.rb
+++ b/app/controllers/admin/members_controller.rb
@@ -30,13 +30,13 @@ class Admin::MembersController < OrbitMemberController
 
       render case params[:at]
         when 'summary'
-          @members=MemberProfile.all.page(page_num).per(12).desc("_id")
+          @members = MemberProfile.all.page(page_num).per(12).desc("_id")
           "index_summary"
         when 'thumbnail'
-          @members=MemberProfile.all.page(page_num).per(36).desc("_id")
+          @members = MemberProfile.all.page(page_num).per(36).desc("_id")
           "index_thumbnail"
         else
-          @members=MemberProfile.all.page(page_num).per(10).desc("_id")
+          @members = MemberProfile.all.page(page_num).per(10).desc("_id")
           "index"
       end
 
@@ -204,7 +204,7 @@ class Admin::MembersController < OrbitMemberController
   end
 
   def unapproved_members
-    @member_query = params[:member_query]
+    @member_query = Sanitize.clean(params[:member_query])
     page_num = params[:page] || 1
     if !@member_query.blank?
       members = MemberProfile.all.any_of({:user_id => /#{@member_query}/i}, {:first_name => /#{@member_query}/i}, {:last_name => /#{@member_query}/i}, {:email => /#{@member_query}/i})
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 1cc8639..cd5d683 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -1,5 +1,6 @@
 class ApplicationController < ActionController::Base
   # Prevent CSRF attacks by raising an exception.
+  protect_from_forgery
   # For APIs, you may want to use :null_session instead.
   # protect_from_forgery with: :null_session
   before_action :set_locale, :set_mobile_web
diff --git a/app/controllers/orbit_admin_controller.rb b/app/controllers/orbit_admin_controller.rb
index a7b486b..3e2ae71 100644
--- a/app/controllers/orbit_admin_controller.rb
+++ b/app/controllers/orbit_admin_controller.rb
@@ -36,7 +36,8 @@ class OrbitAdminController < ApplicationController
         when "link"
           @sort = {:out_link=>params[:order]}
         else
-          @sort = {params[:sort].to_sym=>params[:order]}
+          s = Sanitize.clean(params[:sort]).to_sym
+          @sort = {s=>params[:order]}
       end
     else
       @sort = {:created_at=>'desc'}
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index cf2e9bd..9c4071c 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -14,7 +14,7 @@ class SessionsController < ApplicationController
         session[:user_id] = user.id
         session[:login_referer] = nil
         if params[:referer_url]
-          redirect_to params[:referer_url]
+          redirect_to URI.parse(params[:referer_url]).path
         else
           redirect_to admin_dashboards_path
         end
diff --git a/app/models/member_profile.rb b/app/models/member_profile.rb
index bb65998..1e3680b 100644
--- a/app/models/member_profile.rb
+++ b/app/models/member_profile.rb
@@ -45,6 +45,7 @@ class MemberProfile
   mount_uploader :avatar, AvatarUploader
   paginates_per 10
 
+
   def name
     if self.first_name || self.last_name
       I18n.locale.eql?(:zh_tw) ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}"
diff --git a/app/views/admin/members/_member_for_listing.html.erb b/app/views/admin/members/_member_for_listing.html.erb
index cc5bf64..a492a46 100644
--- a/app/views/admin/members/_member_for_listing.html.erb
+++ b/app/views/admin/members/_member_for_listing.html.erb
@@ -1,4 +1,4 @@
-  <% if member_for_listing.present?%>
+  <% if member_for_listing.present? && member_for_listing.user.approved %>
     <% 
       if member_for_listing.sex == 'male'
         @member_gender = 'gender-man'
diff --git a/app/views/admin/members/_member_for_summary.html.erb b/app/views/admin/members/_member_for_summary.html.erb
index 54c3b3f..fa1535e 100644
--- a/app/views/admin/members/_member_for_summary.html.erb
+++ b/app/views/admin/members/_member_for_summary.html.erb
@@ -1,3 +1,4 @@
+<% if member_for_summary.present? && member_for_summary.user.approved %>
   <li id="<%= dom_id member_for_summary %>">
     <div class="member-avatar">
       <% 
@@ -34,5 +35,6 @@
       </ul>
     </div>
   </li>
+  <% end %>
 
 
diff --git a/app/views/admin/members/_member_for_thumbnail.html.erb b/app/views/admin/members/_member_for_thumbnail.html.erb
index 08b20bf..89cc3b0 100644
--- a/app/views/admin/members/_member_for_thumbnail.html.erb
+++ b/app/views/admin/members/_member_for_thumbnail.html.erb
@@ -1,3 +1,4 @@
+<% if member_for_thumbnail.present? && member_for_thumbnail.user.approved %>
   <% 
   if member_for_thumbnail.sex == 'male'
     @user_sex = 'gender-man'
@@ -18,4 +19,5 @@
       <%= image_tag(member_for_thumbnail.avatar) %>
     </div>
     <h4 class="member-name text-center"><%= link_to (member_for_thumbnail.name != (member_for_thumbnail.email) ? member_for_thumbnail.name : member_for_thumbnail.id),admin_member_path(member_for_thumbnail) %></h4>
-  </li>
\ No newline at end of file
+  </li>
+<% end %>
\ No newline at end of file
diff --git a/app/views/admin/members/_unapproved_members_list.html.erb b/app/views/admin/members/_unapproved_members_list.html.erb
index 04fc077..90345aa 100644
--- a/app/views/admin/members/_unapproved_members_list.html.erb
+++ b/app/views/admin/members/_unapproved_members_list.html.erb
@@ -1,4 +1,4 @@
-  <% if unapproved_members_list.member_profile.present?%>
+  <% if  (unapproved_members_list.member_profile rescue false) && unapproved_members_list.member_profile.present?%>
     <% 
       if unapproved_members_list.member_profile.sex == 'male'
         @member_gender = 'gender-man'
@@ -23,7 +23,7 @@
           <ul class="nav nav-pills">
             <%= content_tag(:li, link_to(t(:edit),edit_admin_member_path(unapproved_members_list.member_profile))) if current_user.is_admin? %>
             <%= content_tag(:li, link_to(t("users.accept_member"),admin_member_accept_member_path(unapproved_members_list))) %>
-            <%= content_tag(:li, link_to(t(:delete_),admin_member_path(unapproved_members_list.member_profile, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if current_user.is_admin? %>
+            <%= content_tag(:li, link_to(t(:delete_),admin_member_path(unapproved_members_list.member_profile.id, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if current_user.is_admin? %>
           </ul>
         </div>
       </td>
diff --git a/app/views/admin/members/unapproved_members.html.erb b/app/views/admin/members/unapproved_members.html.erb
index 9d47b24..3c39f14 100644
--- a/app/views/admin/members/unapproved_members.html.erb
+++ b/app/views/admin/members/unapproved_members.html.erb
@@ -2,7 +2,8 @@
 
   <div class="searchClear pull-left" style="clear: left;">
     <form action="" method="get">
-      <%= text_field_tag 'member_query',( params[:member_query] ? params[:member_query] : '' ), {:id=>'filter-input', :class => "search-query input-medium", :placeholder => 'Search'} %>
+    <% mq = Sanitize.clean(params[:member_query]) %>
+      <%= text_field_tag 'member_query',( mq ? mq : '' ), {:id=>'filter-input', :class => "search-query input-medium", :placeholder => 'Search'} %>
     </form>
   </div>  
 <% end %>
diff --git a/config/environment.rb b/config/environment.rb
index 0f4624c..bdb525d 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -3,6 +3,8 @@ require File.expand_path('../application', __FILE__)
 
 # Initialize the Rails application.
 Orbit::Application.initialize!
+Orbit::Application.config.secret_key_base = 'acc6ffc5a7d360c9cf2a7bdb4ddf9a897942ec6767413a5c0324a0fa8b86197a96298288a66bd46d8770d8b6edf509aad65716961c2c364ce006b475e6cfd418'
+
 
 if Site.count == 0
   site = Site.new
diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb
index 17572ab..f8da8bc 100644
--- a/config/initializers/secret_token.rb
+++ b/config/initializers/secret_token.rb
@@ -9,4 +9,3 @@
 
 # Make sure your secret_key_base is kept private
 # if you're sharing your code publicly.
-Orbit::Application.config.secret_key_base = 'acc6ffc5a7d360c9cf2a7bdb4ddf9a897942ec6767413a5c0324a0fa8b86197a96298288a66bd46d8770d8b6edf509aad65716961c2c364ce006b475e6cfd418'
diff --git a/lib/orbit_core_lib.rb b/lib/orbit_core_lib.rb
index 28c05d6..cc53914 100644
--- a/lib/orbit_core_lib.rb
+++ b/lib/orbit_core_lib.rb
@@ -56,7 +56,12 @@ module  OrbitCoreLib
           @module_app ||= ModuleApp.find_by(key: @app_title) rescue nil
         end
         @module_authorized_users ||= Authorization.module_authorized_users(@module_app.id).pluck(:user_id) rescue nil
-        authenticate_user
+        
+        if current_user.nil?
+          redirect_to new_session_path 
+          return
+        end
+        
         if !@module_app.nil?
           check_user_can_use
         else