Skip to content

Instantly share code, notes, and snippets.

@sonkm3
Created June 15, 2013 01:16
Show Gist options
  • Save sonkm3/5786358 to your computer and use it in GitHub Desktop.
Save sonkm3/5786358 to your computer and use it in GitHub Desktop.
簡易csrf対策
class AdminHandler(webapp.RequestHandler):
@util.login_required
def get(self):
csrf_key = self._generate_csrf_key()
# pass csrf key as template parameter
@util.login_required
def post(self):
if users.is_current_user_admin():
if not self._check_csrf_key(self.request.get('csrf_key')):
return self.redirect('/admin/')
# write code
@staticmethod
def _generate_csrf_key():
csrf_key = str(time.time())+'/'+str(random.randint(0,1000000))
memcache.add(csrf_key, True, 3600)
return csrf_key
@staticmethod
def _check_csrf_key(csrf_key):
if memcache.get(csrf_key) == True:
return True
return False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment