0
我已經開始與python-flask
和angular
和我已經使用this snippet來處理csrf。用ajax調用它總是給我403錯誤。我沒有得到,我在這裏做錯了什麼。 我已經經歷了很多答案,並嘗試了google search中的所有選項。但沒有運氣。我沒有得到我犯錯的地方。燒瓶和csrf標記
瓶代碼:
@app.route('/targetapi/', methods=['POST'])
def fetch_targets():
""" """
data_dict = {}
acc_ids = request.args['acc_ids']
data_dict['username'] = session.get('username')
data_dict['targets'] = some_func(acc_ids)
return jsonify(data_dict)
角碼: HTML頁:
<input name="_csrf_token" type=hidden ng-model="csrf_token" ng-init="csrf_token='{{ csrf_token() }}'" >
Ajax調用:
$http({
method : "POST",
url : '/targetapi/',
headers : { xsrfHeaderName: 'X-CSRFToken', xsrfCookieName : csrf_token },
data : { acc_ids : accountIDs }
})
不知道爲什麼我得到403禁止響應:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>403 Forbidden</title>
<h1>Forbidden</h1>
<p>You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.</p>
* Chrome-Developer工具粘貼的響應
你如何設置Flask來防止CSRF?瓶,跆拳道?燒瓶SeaSurf?其他一些方法? –
@JakubP。 - flask_wtf – trex
假設1)您仔細閱讀了所有http://flask-wtf.readthedocs.org/en/latest/csrf.html和2)AJAX調用實際上具有X-CSRFToken標頭,其中具有適當的值在Flask模板中插入的HTML頁面,以及3)您的flask_wtf配置沒有從默認(http://flask-wtf.readthedocs.org/en/latest/config.html)更改,那麼我沒有線索...如果你可以把一個最小的工作演示放在一起,我可以嘗試在我自己的機器上進行調試......(注意0.9.0版本的要求) –