美文网首页
前端安全 - XSRF - XSS@王云飞

前端安全 - XSRF - XSS@王云飞

作者: 王云飞_小四_wyunfei | 来源:发表于2019-08-11 23:01 被阅读0次

    XSRF

    原理

    王云飞 - 面试题

    用户登录,网站A核查身份是否正确,正确就下发cookie
    cookie会保存在用户的浏览器中,这就完车了一次身份认证的过程
    接下来呢,用户又访问了一个网站B,网站B在给用户返回页面的时候,会携带一个引诱性的点击,这个点击往往是一个链接,这个链接一般就是网站A的API接口。当用户点击了这个链接后,这个点击就访问了A网站,当我们访问A网站的时候咱们都知道浏览器会自动上传cookie,这个时候网站A觉得这个cookie拿到了,对身份进行了重新确认,身份没有问题就相当于执行了这个接口的动作。

    新浪微博就出现过这样的CSRF攻击,莫名的增加了很多粉丝,就是这个原因。

    这里有个前提就是注册用户在被攻击网站一定登录过,未登录的话访问权限接口提要求它登录的。

    CRSF造成攻击的两个前提,第一:网站中某个接口存在漏洞;第二:用户在这个网站一定登陆过,这是实现CSRF攻击的两个基本前提。

    攻击

    你登录了一个购物网站,正在浏览商品,然后下单支付比如支付API是http://xxx.com/pay?id=100但是没有任何验证。此时你收到一封邮件,邮件中隐藏着<img src='http://xxx.com/pay?id=100'/>,咱们都知道img一加载就会立即执行,你查看邮件的就已经悄悄的支付了

    防御

    • token验证:
      我们的验证方式是自动cookie,没有手动的token,token是注册成功以后,是服务器给我们返回的。在我们访问一些权限接口的时候必须携带token,否则不能通过认证。就比如我们刚刚讲的图,点击引诱连接只会自动携带cookie不会携带token,所以就能避免攻击。
    • referer验证:指的就是页面来源,服务器判断这个页面是不是我下面的页面,如果是我就执行你的动作,如果不是就不执行一律拦截。
    • 隐藏令牌: 和token比较像,我们可能会把令牌放在请求头中,不会放在链接上,这两个本质上没什么太大的区别。只是使用方式有一点差别

    XSRF VS XSS

    • XSS是像你的页面注入JS脚本执行,在JS里面去做他想做的事情;无需做权限认证;
    • XSRF是用你API本身的漏洞,帮你自动执行;需要登录认证;

    大前端面试题 - 小四 - 王云飞 - 2019.08.11

    相关文章

      网友评论

          本文标题:前端安全 - XSRF - XSS@王云飞

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