全球主机交流论坛

标题: 一键防反代 [打印本页]

作者: 404    时间: 2013-5-26 22:06
标题: 一键防反代
本帖最后由 404 于 2013-5-26 08:08 编辑

第一, 我标题党了

第二, 不保证没BUG,  不保证后续支持, 不保证与使用者的现有程序不冲突,性能方面没做优化, 没做详尽测试, 使用者自承风险

使用方法, php>=5.3

单独一个站->手动把以下代码放置在代码顶部 (<?php 下面)
全局->保存成单独的php文件, 然后把路径设置在php.ini的auto_prepend_file里

  1. function miemie_hash_str($string, $add_mark='+'){
  2.     $len = strlen($string);
  3.     $chunk_length = mt_rand(1, $len)>>1;
  4.     $chunk_length = $chunk_length ? $chunk_length: 1;
  5.     $chunk_per_size = (int)($len/$chunk_length);
  6.     $chunk_per_size = $chunk_per_size ? $chunk_per_size: 1;
  7.     $result = array();
  8.     $current = 0;

  9.     while($current<$len){
  10.         $tmp = rand(1, $chunk_per_size);
  11.         $result[] = ($current && mt_rand(0,1)?" \n ":'').($current%2?"'":'"').addslashes(substr($string, $current, $tmp)).($current%2?"'":'"');
  12.         $current+=$tmp;
  13.     }
  14.     return join($add_mark,  $result);
  15. }

  16. function miemie_anti_proxy($url=false){
  17.     if($url === false){
  18.         $url = (empty($_SERVER['HTTPS'])?'http://':'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  19.     }
  20.     $val = '(window['. miemie_hash_str('top').']['.miemie_hash_str('location').']'.'=='. miemie_hash_str($url) .') || ('.'window['. miemie_hash_str('top').']['.miemie_hash_str('location').']'.'='. miemie_hash_str($url).');';
  21.     return $val;
  22. }

  23. ob_start(function($content){
  24.     // 关闭的时候在自己php文件顶部加一行
  25.     // define('MIEMIE_DISABLE', 1);
  26.     if(!defined('MIEMIE_DISABLE')) {
  27.         $inject_type = mt_rand(0,1);
  28.         $inject_content = miemie_anti_proxy();
  29.         if($inject_type == 0){
  30.             $content = preg_replace('~</head>~is', '<script'.(mt_rand(0,1)?"\n":"").">$inject_content</script>\n</head>", $content, 1);
  31.         }else if($inject_type == 1){
  32.             $inject_content = htmlspecialchars($inject_content);
  33.             $content = preg_replace('~<img([^>]+>)~is','<img '.(mt_rand(0,1)?"\n":"").'onerror="'.$inject_content.'" '.(mt_rand(0,1)?"\n":"").'onload="'.$inject_content.'"\\1', $content, 1);

  34.         }
  35.     }
  36.     return $content;

  37. });
复制代码

作者: DOS    时间: 2013-5-26 22:07
知道了。
今晚吃咩肉云吞面。
作者: 用户名    时间: 2013-5-26 22:09
好东西
作者: cquyf    时间: 2013-5-26 22:09
技术达人啊
作者: 醉卧网络君莫笑    时间: 2013-5-26 22:10
技术帖,收藏先
作者: malsvent    时间: 2013-5-26 22:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 冰剑    时间: 2013-5-26 22:18
DOS 发表于 2013-5-26 22:07
知道了。
今晚吃咩肉云吞面。

刚刚吃完 咩肉很香
作者: smyz    时间: 2013-5-26 23:00
圈圈js防反代啊。

不过,还可以破的啊。
把window["t替换掉。JS就跑不了。
作者: chinaxilige    时间: 2013-5-27 06:08
马克
作者: 404    时间: 2013-5-27 09:19
smyz 发表于 2013-5-26 09:00
圈圈js防反代啊。

不过,还可以破的啊。

昨晚恍然发现连我都被反代了

其实可以填空空字符, 包括随机字符.replace....
js里global态可以拿this替代window..
再拿\xNNN, \uNNNN随机替代字符

不过现在这样已经够我用了......至少已经把几个反代站IP都挖了出来, 接下来就是判断IP然后301 location了
作者: smyz    时间: 2013-5-27 14:19
404 发表于 2013-5-27 09:19
昨晚恍然发现连我都被反代了

其实可以填空空字符, 包括随机字符.replace....


感觉在前端防反代没能完全防住啊。
不过像你这代码可以防住大多数了。
--

圈圈你网址多少啊?去你站学习学习知识
作者: 全球通    时间: 2013-5-27 14:20
好东西
作者: nodhost    时间: 2013-5-27 15:12
markt
作者: 帅帅的猥琐男    时间: 2013-6-25 21:03
代码复杂着
作者: bnb345    时间: 2013-6-25 21:23
今晚打老虎
作者: zmr90    时间: 2013-6-25 21:25
404 发表于 2013-5-27 09:19
昨晚恍然发现连我都被反代了

其实可以填空空字符, 包括随机字符.replace....

如何查反代IP 咩咩
作者: 一步一杀    时间: 2013-6-25 22:01
技术贴必顶啊
作者: heyxiu    时间: 2013-6-25 23:59
貌似是所有页面都重定向,用户体验不好




欢迎光临 全球主机交流论坛 (https://loc.888543.xyz/) Powered by Discuz! X3.4