美文网首页
CSRF 攻击与防范

CSRF 攻击与防范

作者: AuraAura | 来源:发表于2019-01-08 16:40 被阅读0次

    CSRF

    CSRF(Crossing-site request forgery),跨站请求伪造。盗用个人身份向站点发送恶意请求。

    CSRF攻击原理和过程:

    1. 用户C打开浏览器,访问受信任的网站A,向网站A发送请求。
    2. 用户请求信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户成功登录A网站,可以发送请求到网站A。
    3. 用户在为退出网站A时,在同一浏览器中,打开网站B,向网站B发送请求。
    4. 网站B收到请求后,返回攻击性代码,请求放完第三方网站A。
    5. 浏览器收到攻击性代码,根据网站B的请求,利用用户C向网站A发送请求,网站A认为用户C发出请求,根据用户C的权限,执行来自网站B的恶意代码。


      CSRF百度百科

    CSRF的防范

    防御CSRF攻击主要有三种策略:验证HTTP Referer字段;在请求地址中添加token并验证;在HTTP头中自定义属性并验证。

    1.验证HTTP Referer字段

    HTTP头中Referer字段记录了该请求的来源地址。如果是网站B恶意伪造用户C发出请求,该字段的值判断为不合法,拒绝请求。

    2.请求地址中添加token并验证

    网站B伪造用户C发出请求,该请求中所有的用户验证信息都是存在于cookie中,防范CSRF的攻击,在请求中除了验证cookie信息,以参数的形式加入随机产生的token,并在服务器端建立拦截器来验证这个token。对于GET请求,token将附在请求地址之后,URL为http://url?csrftoken=tokenvalue。对于POST请求,在<form>最后加上
    <input type='hidden' name='csrftoken' value='tokenvalue'/>

    3.在HTTP头中自定义属性并验证

    这种方法是把token以参数的形式放在HTTP请求中,而是把它放在HTTP头自定义属性里。通过XMLHttpRequest这个类,一次性给所有该类请求加上csrftoken这个HTTP头属性。

    参考文章:https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/

    相关文章

      网友评论

          本文标题:CSRF 攻击与防范

          本文链接:https://www.haomeiwen.com/subject/knvurqtx.html