面试题:什么是 Referer?
Referer 是 HTTP 协议中的一个请求头部,它记录了请求来源的信息(URL 地址)。一般情况下,当一个用户浏览器访问一个页面时,请求头会包含 Referer 字段,告诉服务器用户从哪个网页跳转过来。该字段非常关键,可用于身份验证、防盗链等应用场景。
例如,如果一个网站有引用一张图片,那么就需要检查该图片的 Referer 字段,只有在特定的来源页面中才允许访问。同样的,防火墙也可以使用 Referer 来辨别恶意请求和安全访问服务的请求来源等。
下面是一个常见的 HTTP 请求头示例:
GET /path/to/resource HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Referer: https://www.google.com/
在上述请求头中,Referer 字段指明了当前访问来源为 Google 搜索引擎。
需要注意的是,Referer 的敏感性较高,因为它可能泄露用户隐私和受到攻击者的利用,比如防止 CSRF 攻击,即攻击者可以通过篡改 HTML 中的表单提交地址,寻找可利用并导致目标应用程序漏洞等。
因此,在实际应用场景中,我们需要增强访问安全性和减轻可能透露信息泄密风险所造成的影响。