泰安招聘网站有哪些,网站如何做原创,丽水网站建设公司排名,铜陵市建设局网站概念
CSRF 攻击指的是跨站请求伪造攻击#xff0c;攻击者诱导用户进入一个第三方网站#xff0c;然后该网站向被攻击网站发送跨站请求。如果用户在被攻击网站中保存了登录状态#xff0c;那么攻击者就可以利用这个登录状态#xff0c;绕过后台的用户验证#xff0c;冒充用…概念
CSRF 攻击指的是跨站请求伪造攻击攻击者诱导用户进入一个第三方网站然后该网站向被攻击网站发送跨站请求。如果用户在被攻击网站中保存了登录状态那么攻击者就可以利用这个登录状态绕过后台的用户验证冒充用户向服务器执行一些操作。 CSRF 攻击的本质是利用 cookie 会在同源请求中携带发送给服务器的特点以此来实现用户的冒充。
攻击类型
常见的 CSRF 攻击有三种
GET 类型的 CSRF 攻击比如在网站中的一个img 标签里构建一个请求当用户打开这个网站的时候就会自动发起提交POST 类型的 CSRF 攻击比如构建一个表单然后隐藏它当用户进入页面时自动提交这个表单。链接类型的 CSRF 攻击比如在 a 标签的href 属性里构建一个请求然后诱导用户去点击。
如何防御 CSRF 攻击
CSRF 攻击可以使用以下方法来防护 进行同源检测服务器根据 http 请求头中origin 或者referer信息来判断请求是否为允许访问的站点从而对请求进行过滤。当origin 或者 referer 信息都不存在的时候直接阻止请求。这种方式的缺点是有些情况下 referer 可以被伪造同时还会把搜索引擎的链接也给屏蔽了。所以一般网站会允许搜索引擎的页面请求但是相应的页面请求这种请求方式也可能被攻击者给利用。Referer字段会告诉服务器该网页是从哪个页面链接过来的
使用 CSRF Token 进行验证服务器向用户返回一个随机数Token当网站再次发起请求时在请求参数中加入服务器端返回的token然后服务器对这个 token 进行验证。这种方法解决了使用cookie单一验证方式时可能会被冒用的问题但是这种方法存在一个缺点就是我们需要给网站中的所有请求都添加上这个token操作比较繁琐。 还有一个问题是一般不会只有一台网站服务器如果请求经过负载平衡转移到了其他的服务器但是这个服务器的session中没有保留这个 token 的话就没有办法验证了。这种情况可以通过改变 token 的构建方式来解决。
对 Cookie 进行双重验证服务器在用户访问网站页面时向请求域名注入一个 Cookie内容为随机字符串然后当用户再次向服务器发送请求的时候从 cookie 中取出这个字符串添加到URL参数中然后服务器通过对 cookie 中的数据和参数中的数据进行比较来进行验证。使用这种方式是利用了攻击者只能利用cookie但是不能访问获取 cookie 的特点。并且这种方法比CSRF Token 的方法更加方便并且不涉及到分布式访问的问题。这种方法的缺点是如果网站存在 XSS 漏洞的那么这种方式会失效。同时这种方式不能做到子域名的隔离。
在设置 cookie 属性的时候设置 Samesite 限制cookie 不能作为被第三方使用从而可以避免被攻击者利用。Samesite 一共有两种模式一种是严格模式在严格模式下 cookie 在任何情况下都不可能作为第三方 Cookie 使用在宽松模式下cookie 可以被请求是GET 请求且会发生页面跳转的请求所使用。