Home >Backend Development >PHP Tutorial >防站外提交(csrf)有什么好办法?
需要代码,如何防止站外提交数据
需要代码,如何防止站外提交数据
比较常见的方法是给每个需要提交数据的表单产生一个hashkey,提交的时候一起带上就行。
* token每次生成比较头痛的就是并行兼容的问题,如何对付客户用多个标签页浏览同一网页时,各个标签页的行为一致,需要小心处理。我喜欢折中一下,token采取绑定用户+超时,但不绑定请求的方式。保持一定便利性的同时,简单降低token长期不变带来的回放攻击的风险。 @沙渺
Django 提供了 CSRF 的框架,默认 POST 请求都需要带上 token 才行。
给你参考一下:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/
请求带上一个token,token可以考虑绑定用户,提交请求后,服务器确认后再执行请求
额,使用x-csrf-token
这个HTTP header。。。
个人觉得站外提交根本就不能防止,这是我曾经问的一个问题http://segmentfault.com/q/1010000000353407,个人认为插入和服务器端的SESSION一样的本地HASH值也不行,毕竟Chrome一按F12就可本地修改代码了,最重要的还是服务器端进行验证客户端提供的参数