Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

超级词语过滤 0.31 版

[复制链接]
 楼主| 胡戈 发表于 2009-3-15 00:56:28 | 显示全部楼层
刚刚做了个小升级。

0.2版更新:

1,html的页头title信息也能加密、解密了。
2,加密算法修改了一下,修复了某些词语解密错误的bug。
3,说明文件里对程序原理进行了讲解,有助于大家进行二次开发。

从0.1版升级到0.2版,只需覆盖原来的 admin_words_to_code.htm 和 codetotxt.js 文件,然后运行 admin_words_to_code.php ,重新生成密码即可。
回复

使用道具 举报

spartak 发表于 2009-3-15 01:07:46 | 显示全部楼层
我靠,这么nb的技术
回复

使用道具 举报

 楼主| 胡戈 发表于 2009-3-15 01:15:06 | 显示全部楼层
不好意思,刚又发现了个小错误,初次点击“全部加密”无效,已经改好了。请刚才下载了的朋友重新下载。
回复

使用道具 举报

vtx 发表于 2009-3-15 13:07:57 | 显示全部楼层
在无图版Archiver上加过滤代码吧。。因为我试过多次被警告也是那么网监从无图版里发的链接给我的。。
一般他们搜索九成是通过无图版Archiver搜出来的。。。
回复

使用道具 举报

C.c 发表于 2009-3-15 13:20:42 | 显示全部楼层
感谢分享......
回复

使用道具 举报

 楼主| 胡戈 发表于 2009-3-15 16:55:40 | 显示全部楼层
补充一下

在搜索页面、精华区、tag浏览页面进行过滤的方法:

修改 include/misc.func.php 文件,在末尾的“?>”前加入:

function changewords($message) {
        global $_DCACHE;
        require_once(DISCUZ_ROOT.'/forumdata/cache/cache_censor3.php');
        return empty($_DCACHE['censor']['filter']) ? $message :        @preg_replace($_DCACHE['censor']['filter']['find'], $_DCACHE['censor']['filter']['replace'], $message);
}

然后查找
return $thread;

在上面加入:

        $thread['subject'] = changewords($thread['subject']);

这样就完成了加密功能,打开搜索、精华、tag.php,看看是不是加密了。

然后是解密:

在相应的模板文件里,也就是 search_threads.htm,digest.htm,tag_threads.htm 的末尾,加上:

<script type="text/javascript" src="include/javascript/codetotxt.js"></script>

看看是不是解密了。
回复

使用道具 举报

 楼主| 胡戈 发表于 2009-3-15 17:11:28 | 显示全部楼层
在无图版Archiver上加过滤代码吧。。因为我试过多次被警告也是那么网监从无图版里发的链接给我的。。
一般他们搜索九成是通过无图版Archiver搜出来的。。。
vtx 发表于 2009-3-15 13:07


我看了一下源程序,只能告诉你怎么加代码,但我不能测试。你试试看,可以的话告诉我。

1,对贴子页面进行过滤:

修改 archiver/include/thread.inc.php

查找
$thread = $db->fetch_array($query);

在下面加入:

$thread['subject'] = changewords($thread['subject']);
function changewords($message) {
        global $_DCACHE;
        require_once(DISCUZ_ROOT.'/forumdata/cache/cache_censor3.php');
        return empty($_DCACHE['censor']['filter']) ? $message :        @preg_replace($_DCACHE['censor']['filter']['find'], $_DCACHE['censor']['filter']['replace'], $message);
}

查找
$post['author'] = !$post['anonymous'] ? $post['author'] : $lang['anonymous'];

在下面加入:

$post['message'] = changewords($post['message']);


2,对主题列表页面进行过滤

修改 archiver/include/forum.inc.php

在最后的“?>”之前,加入:

function changewords($message) {
        global $_DCACHE;
        require_once(DISCUZ_ROOT.'/forumdata/cache/cache_censor3.php');
        return empty($_DCACHE['censor']['filter']) ? $message :        @preg_replace($_DCACHE['censor']['filter']['find'], $_DCACHE['censor']['filter']['replace'], $message);
}

查找
while($thread = $db->fetch_array($query)) {

在下面加入:

$thread['subject'] = changewords($thread['subject']);



以上就完成了加密。既然 archiver 是给搜索引擎用的,所以也没必要解密了。

如果可以,请反馈给我,我好写进安装方法里。
回复

使用道具 举报

sohu8 发表于 2009-3-15 17:44:52 | 显示全部楼层
回复

使用道具 举报

cghua 发表于 2009-3-15 18:17:08 | 显示全部楼层
思路不错。。。我已经替换快3000个关键字。。。。

你的东西我就不用了。收藏先。

去他妈的江西网警。。。落智
回复

使用道具 举报

afei008 发表于 2009-3-16 01:46:31 | 显示全部楼层
很NB和实用的技术啊,不知道7.0能不能使用啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 01:32 , Processed in 0.034661 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表