flask—wtf中的csrf保护

刚刚碰到一个以前没怎么注意的问题,csrf保护。

什么是csrf?

CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,简单的说就是攻击者可以盗用受害者的名义去发送各种请求,通常是通过某些方式借助受害者浏览器中存储的cookie值来实现的。


Flask-WTF的CSRF保护

flask-wtf实现csrf保护是很简单的,一般情况下是默认开启的,只需要在使用前配置'SECRET_KEY',然后在模板中加入:

{{ form.submit }}
{{ form.csrf_token }}

即可实现csrf保护。

一个简单的实现

在添加之前,登录界面的"登录"按钮代码:

在添加之后的效果:


可以看到添加了一个隐藏的字段。

如果此时打开f12,再点击登录按钮,就会发现提交的post请求中,cookie里面保存的session前面多了一长串的"乱码",这段乱码应该就是添加的token。

ps:其实写这篇的时候我还注意到一个很常见的问题,那就是cookie跟session的关系,以后有时间再整理下相关信息吧

 

参考资料:

https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/#icomments

https://ninghao.net/blog/2834(这是关于token的理解)

https://flask-wtf.readthedocs.io/en/stable/

你可能感兴趣的:(flask)