当前位置:  首页  >  PHP教程  >  PHP 安全  >  跨站攻击

PHP利用$_SERVER["HTTP_REFERER"]防止站外链接和任意网址跳转漏洞

今天利用360扫描我的网站,提示警告基本的任意网址跳转漏洞,其实这个是我设置,在不影响用户体验的情况下,为了所谓的网站权重问题而设置的...PHP利用$_SERVER["HTTP_REFERER"]防止站外链接和任意网址跳转漏洞

360提示本网站网站发现任意网址跳转漏洞

难得有空余时间,又开始折腾我的新博客的,哈哈。玩微博偶尔又扫到了360,就想着扫描一下我的网站试试。一看不要紧,提醒存在任意网址跳转漏洞:

该漏洞可能导致网站用户被钓鱼,造成不必要的损失,严重影响网站在用户中的形像!

漏洞地址:

http://ziren.org/app/zr-s.php?url=http://oxoxoxoxoxoxox.com

扫描结果:

ziren.org安全报告,提示存在任意网址跳转漏洞

为何出现这个问题?

其实这个是我设置,在不影响用户体验的情况下,为了所谓的网站权重问题而设置的,站外链接都是从这个出口导出,这个链接禁止搜索引擎收录。仔细想想,这是也真改好好思考一下,如果有人利用这个设置搞下不正当的东西,我的主机真吃不消,再者很可能被xxx加入黑名单之类的东东,多一事不如少一事。搞点php的$_SERVER["HTTP_REFERER"]验证一下吧:

view sourceprint
01.
02. $check_url=$_SERVER['HTTP_REFERER'];
03. if($check_url!=''){
04. $check_url=parse_url($check_url);
05. if($check_url[host]!='ziren.org'){
06. $url='http://ziren.org/';
07. exit();
08. }
09. }
10.?>

什么情况下HTTP_REFERER会失效?

只有点击超链接A(即)打开的页面才有HTTP_REFERER环境变量,其它如 window.open()、 window.location=…、window.showModelessDialog()等打开的窗口都没有HTTP_REFERER 环境变量。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有