TOKEN验证防止CSRF攻击的原理。CSRF中文名是跨站请求伪造攻击,黑客可以通过CSRF攻击来伪造我们的身份,从而进行不法的活动。比如说是以我们的身份进行转账,发送邮件等操作。

要想做到预防CSRF攻击,首先需要了解CSRF攻击的原理,只有这样才可以真正的掌握预防的手段。CSRF攻击的原理是这样的:

(1):当我们登陆某个网站以后,因为HTTP协议是无状态的,所以为了保存我们的登陆状态,服务器中的程序就必须创建一个session文件,用来保存我们的登陆信息。

(2):为了能够在多个页面相互切换访问之间,记录我们的状态,服务端首先会将一个响应的session文件对应的session_id传递给客户端浏览器。浏览器接受到以后就会将这个值写入到一个cookie文件中。在下一次访问该网站的内容的时候,就会将客户端本地所存储的属于该网站的cookie全部发送给服务端程序,其中就包括存储session_id的cookie。服务端如果需要检测请求者的身份,就可以根据传递过来的cookie中所包含的session_id来检测服务端是否存在响应的session文件以及session文件中的内容是否合法。如果检测合法,那么就验证用户身份合法,否则不合法。

(3):如果黑客在其他页面设置了一个链接,这个链接指向一个网站的转账系统。并且当前用户是这个网站的会员,并且处于登陆的状态(也就是客户端浏览器存在存储合法的session_id的cookie),那么当用户点击了这个链接以后,那么客户端浏览器就会将用户的这些信息进行传递到服务端,但是这个链接具体做了什么,用户根本不知道,这也就做到了伪造了用户的身份,做了用户都不知道的事情。。。

那么应该怎么进行预防这种攻击那?目前主流的框架为了预防这种攻击,都是采用TOKEN机制。也就是说当用户与服务端进行交互的时候,传递一个加密字符串到服务端,服务端来检测这个字符串是否是合法的,如果不合法就有可能是黑客伪造用户信息进行请求的。

那么这个加密字符串是怎么生成的那?加密字符串是由后端程序生成,然后赋值到页面之上。一般是由当前控制器,方法,密钥,时间组合在一起加密而成。传递到服务端以后,服务端重新生成一遍,如果一致就是合法的,否则就是不合法的。

最新文章

  1. Android课程---序列化与反序列化(转)
  2. Do带你解析:原生APP与web APP的区别
  3. Pycharm远程调试
  4. 素材收集(icon/images/javascript)
  5. C#通过RFC调用SAP
  6. Peeking into Apache Flink's Engine Room
  7. [SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS
  8. 使用inno setup打包程序完整脚本(.net框架检测,重复安装检测)
  9. Yii笔记---redirect重定向
  10. WPF Navigation导航
  11. Linux下实现CAD数据的导出
  12. Win7硬盘的AHCI模式
  13. 19.C++-(=)赋值操作符、智能指针编写(详解)
  14. 浅谈Java多线程的同步问题 【转】
  15. EXTENDED LIGHTS OUT
  16. jquery toast插件
  17. fiddler抓包参数乱码的解决方法
  18. 计算器类(C++&JAVA——表达式转换、运算、模板公式)
  19. Java并发知识(1)
  20. 腾讯云HTTPS设置管理

热门文章

  1. SDk编程基础
  2. Keras上实现简单线性回归模型
  3. top - 交互式监控
  4. 《linux就该这么学》课堂笔记06 编写shell脚本、if、for
  5. Java开发分析工具JProfiler的详细使用方法解析
  6. Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名
  7. Junit测试入门
  8. nginx+Gunicorn部署你的Flask项目
  9. HDU5036(bitset加速传递闭包+期望)
  10. 后端将Long类型数据传输到前端出现精度丢失的问题