CSRF攻击 (Cross-site request forgery)
前端安全相关总结
前端安全相关的主要有两个:CSRF攻击和XSS攻击;
什么是CSRF攻击 (Cross-site request forgery)
跨站请求伪造攻击。主要表现为:攻击者诱导受害者进入第三方网站(A网站),然后在A网站,向被攻击的网站(B网站)发送跨站请求,利用受害者在B网站的登录信息,请求某些有接口。 具体示例如下:
1.用户小红,在weibo.com登录了。
2.小红无意中点开了第三方网站xxx.com
<img src="https://www.weibo.com/deleteId=111"/> // 此接口为删除帖子Id的接口。
小红就在不知不觉中删除了自己在微博的id=111的帖子
也可以是post的请求ex
xxx.com 页面里有个跨域请求ex:
<form action="http://bank.example/withdraw" method=POST> <input type="hidden" name="account" value="xiaoming" /> <input type="hidden" name="amount" value="10000" /> <input type="hidden" name="for" value="hacker" /> </form> <script> document.forms[0].submit(); </script>
CSRF 特点
攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。
攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。
整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。
跨站请求可以用各种方式:图片URL、超链接、cors、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。
CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。
防护策略
阻止不明外域的访问
同源检测
Samesite Cookie 利用origin Header 来确定来源域名
设置Referrer Policy的方法有三种:
在CSP设置
页面头部增加meta标签
a标签增加referrerpolicy属性
提交时福建本域的信息
CSRF Token --前后端统一验证存储在session的相关信息里。
双重Cookie 验证--前端随机一个cookie,
参考文档
https://tech.meituan.com/2018/10/11/fe-security-csrf.html
本文标题:CSRF攻击 (Cross-site request forgery)
本文链接:https://56way.com/p/133.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
发表评论