PHP中使用$_SERVER['HTTP_REFERER']
可以得到当前页面的前一页面的地址
例如:
页面index.html中有个<a href="test.php">链接</a>
,当用户点击时会跳转至test.php,此时test.php中可以得到$_SERVER['HTTP_REFERER']
的值为 :http://域名/index.html
PHP $_SERVER['HTTP_REFERER']
无效
$_SERVER['HTTP_REFERER']
并不是所有浏览器都会设置这个变量,有的还可以手工修改, 因此$_SERVER['HTTP_REFERER']
仅做参考
通常以下方式$_SERVER['HTTP_REFERER']
会无效
- 直接输入网址访问该网页
- JavaScript打开的网址
- JavaScript重定向(window.location)网址
- 使用 meta refresh 重定向的网址
- 使用 PHP header 重定向的网址
- Flash中的链接。
- 浏览器未加设置或被用户修改
一般来说只有通过<a>
标签的超链接以及 POST 或 GET 表单访问的页面$_SERVER['HTTP_REFERER']
才有效
因此在表单数据处理页面一定程度上可以通过校验,但该方法并不能保证表单数据的绝对正确,即对表单数据的真实性检测并不能完全依赖于$_SERVER['HTTP_REFERER']
来防止表单数据的恶意提交$_SERVER['HTTP_REFERER']
PHP 手册描述$_SERVER['HTTP_REFERER']
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。
本文由 Ainto 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2019-02-16 23:22