zoukankan      html  css  js  c++  java
  • CRSF 原理以及预防

    crsf攻击原理

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

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

    (2)用户验证通过、获得信任站点的身份信息,并放入cookie中,用户此时可以在站内进行其他请求

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

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

    (5)由于同域名可以带上cookie信息,因此信息认证通过,请求伪造成功
    image

    crsf预防方式

    (1)检测请求来源

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

    (2)加入token校验

    crsf之所以能够伪造请求成功,其原因之一在于所有的用户信息放于cookie中;因此可以在每次请求中加入token,然后后台进行校验,如果校验通过则进行处理。生成token方式之一如下:

    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;
    }
    
  • 相关阅读:
    jQuery
    编程英语
    Javaweb基础案例
    Maven-基础设置教程
    .Net微服务实践(三):Ocelot配置路由和请求聚合
    .Net微服务实践(二):Ocelot介绍和快速开始
    ASP.NET Core技术研究-探秘Host主机启动过程
    Docker安装手册
    HBase文档学习顺序
    考研学习笔记极限与连续笔记顺序
  • 原文地址:https://www.cnblogs.com/zsblogs/p/9498089.html
Copyright © 2011-2022 走看看