• CORS和CSRF


    CORS和CSRF

    什么是CORS?
    CORS是一个W3C标准,全称是"跨域资源共享",他允许浏览器向夸源服务器,发出XMLHTTPRequest请求,从而克服了AJAX只能同源使用的限制.

    什么是CSRF?
    名为跨站请求伪造,指攻击者盗用了你的身份,以你的名义发送恶意请求,CSRF主流防御方式是在后端生成表单的时候生成遗传随机token,内置到表单里成为一个字段,同时,将此串token置入session中.每次表单提交到后端时都会检查这两个值是否一致,以此来判断此次表单提交是否是可信的.提交过一次之后,如果这个页面没有生成CSRF token,那么token将会被清空,如果有新的需求,那么token会被更新.
    攻击者可以伪造POST表单提交,但是他没有后端生成的内置于表单的token,session中没有token都无济于事.

    如何去解决CSRF跨域请求伪造问题?

    防止CSRF攻击的步骤

    1. 在客户端向后端服务器请求页面数据时, 后端会在响应的token中设置csrf_token的值
    2. 在前端的From表单中也添加了一个隐藏的字段, 这个字段的值也是csrf_token
    3. 在用户点击提交的时候, 会带上表单中的csrf_token和cookie中的csrf_token一起发送到后端服务器
    4. 后端服务器接收前端发送过来的请求
      1. 从cookie中取出csrf_token
      2. 从From表单中取出隐藏的csrf_token值
      3. 对这两个token值进行对比
    5. 如果比对之后这连个值一样, 则表示这个是正常的请求, 如果对比之后发现这两个值不一样, 则说明这个是不正常的请求, 服务器端不需要做处理

       

  • 相关阅读:
    PAT (Basic Level) Practise:1001. 害死人不偿命的(3n+1)猜想
    流加密法
    The NMEA 0183 Protocol
    USB 描述符
    网摘
    What are the 10 algorithms one must know in order to solve most algorithm challenges/puzzles?
    Why did Jimmy Wales invest in Quora? Is he afraid that it will take over Wikipedia?
    Add Binary
    Cocos2d-x 网络资源
    Cache
  • 原文地址:https://www.cnblogs.com/Infernal/p/11282443.html
Copyright © 2020-2023  润新知