CRSF 原理以及预防

crsf攻击原理

CRSF(跨站请求伪造)是攻击站点伪造请求,冒充用户身份在受信任站点进行操做。具体过程以下:javascript

(1)用户向信任站点如example.com发送请求java

(2)用户验证经过、得到信任站点的身份信息,并放入cookie中,用户此时能够在站内进行其余请求浏览器

(3)用户未退出登陆example.com,而后访问hack.com网站,该网站返回攻击性代码而且在页面中存在访问example.com的请求cookie

(4)浏览器在用户可能不知情的状况下向example.com发送请求网站

(5)因为同域名能够带上cookie信息,所以信息认证经过,请求伪形成功
imagecode

crsf预防方式

(1)检测请求来源token

在请求头中有一个refree字段,refree记录了发送请求的域名,好比:hack.com向example.com中发送请求,那么refree就为hack.com,只要在处理请求中作相应的校验就能够中断请求。ip

(2)加入token校验get

crsf之因此可以伪造请求成功,其缘由之一在于全部的用户信息放于cookie中;所以能够在每次请求中加入token,而后后台进行校验,若是校验经过则进行处理。生成token方式之一以下:hash

function getToken (token) {

    var str = token || '';
    var hash = 5381;
    for (var i = 0, len = str.length; i < len; ++i) {
        hash += (hash << 5) + str.charCodeAt(i);
    }
    return hash & 0x7fffffff;
}
相关文章
相关标签/搜索