Skip to content
Menu
编程侠
  • 首页
  • 资讯
    • 手机
  • 博客
    • 博客vue
    • 博客PHP
  • Q我
编程侠
2021-01-132021-01-13

CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

一个典型的CSRF攻击有着如下的流程:
受害者登录a.com,并保留了登录凭证(Cookie)。
攻击者引诱受害者访问了b.com。
b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会…
a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。
a.com以受害者的名义执行了act=xx。
攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。

几种常见的攻击类型
攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。
攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。
整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。
跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。
CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。

举几个例子:
1、受害者访问含有这样的img的页面后,浏览器会自动向img的src发出一次HTTP请求。www.xxx.com就会收到包含受害者登录信息的一次跨域请求。

<img src="http://www.xxx.com/test?id=10000&for=hacker" />


2、需要受害者主动点击链接才会触发。这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击。

<a href="http://www.xxx.com/test?id=10000&for=hacker" taget="_blank">中奖啦!!</a>

3、受害者访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。

<form action="http://www.xxx.com/test" method="POST">
    <input type="hidden" name="id" value="10000">
    <input type="hidden" name="pass" value="10000">
    <input type="hidden" name="for" value="hacker">
</form>
<script> document.forms[0].submit(); </script>

防护策略

CSRF通常从第三方网站发起,被攻击的网站无法防止攻击发生,只能通过增强自己网站针对CSRF的防护能力来提升安全性。

1、阻止不明外域的访问(如:同源检测)

2、提交时要求附加本域才能获取的信息(如:CSRF Token)

最新

  • 831密码安全口令
  • 链接跳转到百度地图的指定地址
  • 云服务提到的99.99%的服务可用性,这是个什么概念?
  • 兼容IE的CSS竖排文字代码
  • 网页灰度

标签

831 a标签 canvas clone csrf echarts filter GB2312 grayscale Hello html2canvas iframe prism Unicode UTF-8 wordpress world XSS 不触发 云服务 代码雨 大数据 异常 手机号 打印 拼多多 数组 文字转语音 朗读 正则 深浅拷贝 热力图 竖排 签名验证 编码 编程圈 置灰 背代码 节流 速度 链接 链接跳转 键盘 防抖 验证

友情链接

  • staggering-beauty
  • 编程侠
©2025 编程侠 渝ICP备20006693号-4