下面这样的请求几天之前是正常的 今天访问了一下被 403 了
curl -X GET -H "Referer: http://a.danmaku.cn" "http://www.acfun.cn/" --head
HTTP/1.1 403 Forbidden
Server: Tengine
Date: Thu, 23 Feb 2017 05:56:50 GMT
Content-Type: text/html
Content-Length: 161
Connection: keep-alive
X-Tengine-Error: denied by Referer ACL
Via: kunlun1.cn36[,403003]
Timing-Allow-Origin: *
EagleId: 3c1ce20114878294106198259e
A 站这里检查 referer 的作用是什么呢? 如果是 CSRF 攻击可以伪造 Referer ,并且这是请求的还是首页。 人家没开发过什么网站,更对网站安全没啥研究。
1
luckyduck 2017-02-23 15:35:24 +08:00
一般用来防止图片盗链
|
3
shiny 2017-02-23 15:37:57 +08:00
如果把 A 站资源嵌入自己网站供访问者使用,无法篡改访客的 Referer 。
|
4
jiangzhuo OP @shiny 但是嵌个首页链接也。。。。。。
很好奇一开始 A 站没做 referer 处理,是这两天根据 Access log 分析出什么来加上的? |
6
jiangzhuo OP @crab 是一个<a>标签,点击链接跳转
``` <!DOCTYPE html> <html> <head></head> <body><a href="http://www.acfun.cn" rel="noreferrer" id="autoclick"></a> <script>document.getElementById('autoclick').click();</script> </body> </html> ``` http://a.danmaku.cn |
9
changwei 2017-02-23 17:50:19 +08:00 via Android
js 无法修改通过 html 标签的 src 或者 xmlhttprequest 发出去的请求的 referer ,校验这个值可以简单的防御 csrf 攻击。
|
10
weyou 2017-02-23 19:20:41 +08:00 via Android
如果被攻击者使用的是正常的浏览器, csrf 攻击真的改不了 referer
|
12
lslqtz 2017-02-23 21:01:27 +08:00 via iPhone
改 -> 隐藏
|