1. 程式人生 > >Flask專案實現防止CSRF攻擊的流程

Flask專案實現防止CSRF攻擊的流程

Flask專案實現防止CSRF攻擊的流程


a) 使用 flask_wtf 中 CSRFProtect類,初始化該類並傳入app

b) 使用 flask_wtf.csrf模組中的generate_csrf方法生成csrf_token

c) 使用請求勾子 after_request,取到響應,統一設定到cookie中

d) 如果前端使用form表單提交,需要在表單中新增隱藏的input,並設定其value值為: {{ csrf_token() }}

e) 如果前端使用ajax的方式提交,則在header中新增X-CSRFToken並設定相關值(值從cookie中取)

f) CSRFProtect的實現原理是:使用請求勾子,before_request的時候去取到cookie裡面的值和表單(或者請求頭)裡面的值進行對比

g) Django中使用中介軟體的方式實現

Flask-WTF官方文件 http://www.pythondoc.com/flask-wtf/