Fix and unify CSRF support across web and API endpoints.
This commit is contained in:
parent
0097daebc2
commit
f060fd6ae0
5 changed files with 53 additions and 28 deletions
|
@ -1,11 +1,9 @@
|
|||
import logging
|
||||
import os
|
||||
import base64
|
||||
import urlparse
|
||||
import json
|
||||
|
||||
from flask import session, make_response, render_template, request
|
||||
from flask.ext.login import login_user, UserMixin, current_user
|
||||
from flask import make_response, render_template, request
|
||||
from flask.ext.login import login_user, UserMixin
|
||||
from flask.ext.principal import identity_changed
|
||||
|
||||
from data import model
|
||||
|
@ -85,15 +83,6 @@ def handle_dme(ex):
|
|||
return make_response(json.dumps({'message': ex.message}), 400)
|
||||
|
||||
|
||||
def generate_csrf_token():
|
||||
if '_csrf_token' not in session:
|
||||
session['_csrf_token'] = base64.b64encode(os.urandom(48))
|
||||
|
||||
return session['_csrf_token']
|
||||
|
||||
app.jinja_env.globals['csrf_token'] = generate_csrf_token
|
||||
|
||||
|
||||
def render_page_template(name, **kwargs):
|
||||
resp = make_response(render_template(name, route_data=json.dumps(get_route_data()), **kwargs))
|
||||
resp.headers['X-FRAME-OPTIONS'] = 'DENY'
|
||||
|
|
Reference in a new issue