http请求头中Referer的作用及危害
一、Referer
Referer
是HTTP请求header中的一部分,其表示请求当前资源的客户端来源,当浏览器(或模拟浏览器行为)向web服务器发送请求的时候,头部信息里会携带Referer
。
例如:在 www.google.com 里有一个 www.baidu.com 超链接,当点击这个链接跳转到baidu的时候,浏览器向baidu发出的请求信息里就有:
Referer=http://www.google.com
Referer的正确拼写是referrfer,由于早期的HTTP规范的拼写错误,于是决定将错就错。
1.作用
- 防盗链:
比如只允许某台服务器访问我自己的图片服务器资源,则可校验Http请求包中的Referer
。判断是不是特定服务器的域名,若不是,则拒接响应。
- 防止恶意请求:
对于某些风险较高的文件类型,可使用Referer
使得该类型文件只能来自我所指定的网站。
2.空Refer
Referer
头部的内容为空的情况:
- 浏览器内直接输入URL
- Windows桌面的超链接图标
- 浏览器内书签
- 第三方软件内容中的链接跳入
二、Referer的伪造
1.伪造为ip地址
- 使用Firefox的X-Forwarded-For Header 插件更改ip地址
- 使用brup拦截请求包,在Proxy里面发送到Repeater,将Http头中的
X-Forwarded-For
改为想改的ip
2.伪造为URL
通过brup拦截,再使用Reapter修改Referer
为想指定的URL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)