防止CSRF攻击

一. 了解 CSRF 攻击过程

        CSRF 全称是Cross-Site Request Forgery,中文意思为跨站请求伪造。上一文中提到服务器端与客户端通过 Cookie 来标识和认证用户,通常而言,用户通过浏览器访问服务器端的 session的sessionID是无法被第三方知道的,但是CSRF的攻击者并不需要知道Session ID就可以让用户中招。

        如果某个网站某个接口存在 CSRF 漏洞,那么攻击者便可以在自己的网站写一个请求,将其中的数据发往存在漏洞的网站,大家在想,session ID 不是随机生成的吗,攻击者怎么可以知道呢?攻击者当然不可能知道,但是他可以诱骗该网站的用户去访问刚刚写好的请求链接,便会借用该用户的 ID,向该服务器发送数据,因此可能造成严重的后果。

说了半天我们怎么防御这种攻击呢?

二. CSRF 攻击的防御

我们可以事先跟前端沟通,建立一条约定,比如在每次请求体中加入一个随机的参数,此处我们加入了一个 name:石头山 ,在服务器中我们先检验该值,如果正确说明是安全的,如果没有该值则是其他人伪造的请求,拒绝访问,很简单但是有效的阻止了攻击。

fetch('http://乱七八糟:80',{

        body: {

        name : '石头山'

}

})

 

你可能感兴趣的:(nodejs,csrf,前端,安全,node.js)