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机制。也就是说当用户与服务端进行交互的时候,传递一个加密字符串到服务端,服务端来检测这个字符串是否是合法的,如果不合法就有可能是黑客伪造用户信息进行请求的。

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

TOKEN验证防止CSRF攻击的原理的更多相关文章

  1. asp.netcore mvc 防CSRF攻击,原理介绍+代码演示+详细讲解

    一.CSRF介绍 1.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session ridin ...

  2. CSRF攻击之原理讲解

    |=——————————————————————=| |=————–=[ CSRF攻击原理解析 ]=——————=| |=——————————————————————=| |=——————-=[ By ...

  3. CSRF攻击原理及预防手段

      CSRF全程 Cross Site Request Forgery, 跨站域请求伪造.这种攻击方式相对于XSS,SQL注入等攻击方式比较晚被发现,今天就来讲解下这种攻击方式以及避免方式. 攻击过程 ...

  4. CSRF攻击原理解析与对策研究

    1.引言       跨站点请求伪造(Cross—Site Request Forgery).以下简称CSRF.是一种广泛存在的网站漏洞.Gmail.YouTube等著名网站都有过CSRF漏洞.甚至包 ...

  5. CSRF的原理与防御 | 你想不想来一次CSRF攻击?

    CSRF是Cross Site Request Forgery的缩写,中文翻译过来是跨站请求伪造.这个漏洞往往能给用户带来巨大的损失,CSRF在等保安全检测中,也是一个非常重要的检测项.但是在我们的网 ...

  6. [转]浅谈CSRF攻击方式

    在CSDN中看到对CSRF攻击的原理及防护文章,讲解浅显易懂,特转之: 来源:http://blog.csdn.net/fationyyk/article/details/50833620 一.CSR ...

  7. SQL 注入、XSS 攻击、CSRF 攻击

    SQL 注入.XSS 攻击.CSRF 攻击 SQL 注入 什么是 SQL 注入 SQL 注入,顾名思义就是通过注入 SQL 命令来进行攻击,更确切地说攻击者把 SQL 命令插入到 web 表单或请求参 ...

  8. 安全|常见的Web攻击手段之CSRF攻击

    对于常规的Web攻击手段,如XSS.CRSF.SQL注入.(常规的不包括文件上传漏洞.DDoS攻击)等,防范措施相对来说比较容易,对症下药即可,比如XSS的防范需要转义掉输入的尖括号,防止CRSF攻击 ...

  9. XSS攻击和CSRF攻击

    一.什么是XSS攻击 XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞.XSS通过在用户端注入恶意的可运行脚本,若服务器端对用户输入不进 ...

随机推荐

  1. springmvc核心流程

    用户请求DispathcerServlet(前端控制器). (前端控制器)DispatcherServlet接受到请求,将根据请求信息交给处理器映射器(HandlerMapping). 处理器映射器( ...

  2. C#语法一些简化备忘

    有些传统的写法,可以简写,之前没留意到,现在才注意到 IDE0031: Null check can be simplified entity.Unit = entity.Unit == null ? ...

  3. python将科学计数法表示的数值的字符串转换成数值型数据

    今天碰到一个问题,需要将科学计数法表示的数值的字符串转换成数值型数据参与算术运算, 然而,当使用int()方法进行转换时,直接报错了,如下: 然后在网上找转换方法,始终没有找到合适的方法,有的是自己写 ...

  4. Odoo中的五种Action详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的 ...

  5. String中intern方法的作用

    前言 读完这篇文章你可以了解,String对象在虚拟机内存中的存放,intern的作用,这么多String对象的创建到底有什么区别,String 创建的对象有几个!! 正题 先科普几个知识点1.常量池 ...

  6. 项目Beta冲刺(团队5/7)

    项目Beta冲刺(团队) --5/7 作业要求: 项目Beta冲刺(团队) 1.团队信息 团队名 :男上加男 成员信息 : 队员学号 队员姓名 个人博客地址 备注 221600427 Alicesft ...

  7. TestAbstract

    public class TestAbstract { public static void main(String[] args) { System.out.println("Hello ...

  8. MySQL利用LOCATE,CONCAT查询

    SELECT * FROM table t WHERE 1=1 AND LOCATE(#{searchParams},CONCAT(t.account,IFNULL(t.id,''),IFNULL(t ...

  9. java 集合类 列表

    Dissecting the Program Line 2-4 imports the collection framework classes and interfaces reside in th ...

  10. presto-gateway nodejs client

    目前已经有了好几个presto nodejs 的client,为了方便presto-gateway 的连接,修改了一个现有的nodejs client 可以方便的连接presto-gateway 原理 ...