本帖最后由 404 于 2013-5-26 08:08 编辑
第一, 我标题党了
第二, 不保证没BUG, 不保证后续支持, 不保证与使用者的现有程序不冲突,性能方面没做优化, 没做详尽测试, 使用者自承风险
使用方法, php>=5.3
单独一个站->手动把以下代码放置在代码顶部 (<?php 下面)
全局->保存成单独的php文件, 然后把路径设置在php.ini的auto_prepend_file里
- function miemie_hash_str($string, $add_mark='+'){
- $len = strlen($string);
- $chunk_length = mt_rand(1, $len)>>1;
- $chunk_length = $chunk_length ? $chunk_length: 1;
- $chunk_per_size = (int)($len/$chunk_length);
- $chunk_per_size = $chunk_per_size ? $chunk_per_size: 1;
- $result = array();
- $current = 0;
- while($current<$len){
- $tmp = rand(1, $chunk_per_size);
- $result[] = ($current && mt_rand(0,1)?" \n ":'').($current%2?"'":'"').addslashes(substr($string, $current, $tmp)).($current%2?"'":'"');
- $current+=$tmp;
- }
- return join($add_mark, $result);
- }
- function miemie_anti_proxy($url=false){
- if($url === false){
- $url = (empty($_SERVER['HTTPS'])?'http://':'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
- }
- $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).');';
- return $val;
- }
- ob_start(function($content){
- // 关闭的时候在自己php文件顶部加一行
- // define('MIEMIE_DISABLE', 1);
- if(!defined('MIEMIE_DISABLE')) {
- $inject_type = mt_rand(0,1);
- $inject_content = miemie_anti_proxy();
- if($inject_type == 0){
- $content = preg_replace('~</head>~is', '<script'.(mt_rand(0,1)?"\n":"").">$inject_content</script>\n</head>", $content, 1);
- }else if($inject_type == 1){
- $inject_content = htmlspecialchars($inject_content);
- $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);
- }
- }
- return $content;
- });
复制代码 |