类别:浏览器 / 日期:2023-01-31 / 浏览:227 / 评论:0

CSRF 攻击可以使用以下方法来防护:

进行同源检测,服务器根据 http 请求头中 origin 或者 referer 信息来判断请求是否为允许访问的站点,从而对请求进行过滤。当 origin 或者 referer 信息都不存在的时候,直接阻止请求。这种方 式的缺点是有些情况下 referer 可以被伪造,同时还会把搜索引擎 的链接也给屏蔽了。所以一般网站会允许搜索引擎的页面请求,但是 相应的页面请求这种请求方式也可能被攻击者给利用。(Referer 字 段会告诉服务器该网页是从哪个页面链接过来的)

使用 CSRF Token 进行验证,服务器向用户返回一个随机数 Token , 当网站再次发起请求时,在请求参数中加入服务器端返回的 token , 然后服务器对这个 token 进行验证。这种方法解决了使用 cookie 单一验证方式时,可能会被冒用的问题,但是这种方法存在一个缺点 就是,我们需要给网站中的所有请求都添加上这个 token,操作比较 繁琐。还有一个问题是一般不会只有一台网站服务器,如果请求经过 负载平衡转移到了其他的服务器,但是这个服务器的 session 中没 有保留这个 token 的话,就没有办法验证了。这种情况可以通过改 变 token 的构建方式来解决。-CSRF

对 Cookie 进行双重验证,服务器在用户访问网站页面时,向请求域 名注入一个 Cookie,内容为随机字符串,然后当用户再次向服务器 发送请求的时候,从 cookie 中取出这个字符串,添加到 URL 参数 中,然后服务器通过对 cookie 中的数据和参数中的数据进行比较, 来进行验证。使用这种方式是利用了攻击者只能利用 cookie,但是 不能访问获取 cookie 的特点。并且这种方法比 CSRF Token 的方法 更加方便,并且不涉及到分布式访问的问题。这种方法的缺点是如果 网站存在 XSS 漏洞的,那么这种方式会失效。同时这种方式不能做 到子域名的隔离。-CSRF

在设置 cookie 属性的时候设置 Samesite ,限制 cookie 不能作为 被第三方使用,从而可以避免被攻击者利用。Samesite 一共有两种 模式,一种是严格模式,在严格模式下 cookie 在任何情况下都不可 能作为第三方 Cookie 使用,在宽松模式下,cookie 可以被请求是 GET 请求,且会发生页面跳转的请求所使用。-CSRF

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。

«    2023年11月    »
12345
6789101112
13141516171819
20212223242526
27282930

最新留言