浏览模式: 标准 | 列表 2016年12月2日的文章

PHP模拟手机访问并截取一段程序

这篇日志被加密了,请输入密码后查看。

清除Discuz帖子中被插入非法内容的小程序

朋友的Discuz论坛在2015年7月-10月期间修改论坛帖子,在每个帖子的末尾插入了非法内容(下方第1种),2016年7月14-16日期间修改论坛帖子,在每个帖子的末尾插入了非法内容(下方第2种)。内容从数据库中查询得到如下:

  • [b][url] [img] www.xxxxx.com [/img] [size=6][color=Blue]非法内容介绍[/color][/size] [/url][/b]
  • <meta http-equiv="refresh" content="0; url=http://xxxxx.com">[b][url] [img] www.xxxxx.com [/img] [size=6][color=Red]非法内容介绍[/color][/size] [/url][/b]

第一种内容只是一个红色大字体的链接,需要用户点击,第二种内容更加BT,会直接跳转到目标非法网站。因为帖子是被修改的,所以非常隐蔽,而很多通过搜索引擎进入网站的用户会被一瞬间导入到非法网站……

观察了一下上方2条非法内容中均包含的字符串,就可以在mysql数据库中查询到有多少帖子被修改了:SELECT count(*) FROM  `pre_forum_post` WHERE  `message` LIKE  '%[b][url] [img]%'

因为非法内容这个区域的字符是杂乱无章并且加了一些特殊字符,为了有效清除这些非法信息。我写了个PHP小程序,具体如下:

  • config.php 数据库连接信息配置文件
  • dz_clear_link_cmd.php 通过windows或者linux命令行下执行的
  • dz_clear_link_web.php 通过网页访问形式执行的

本小程序用于清除插入到discuz论坛帖子内容末尾的垃圾信息

本程序基于GBK编码设置,如果你的论坛程序是UTF-8可能会存在问题。

1. 打开config,编辑数据库信息

2. 把3个php文件上传到网站根目录下

3. 访问http://网站地址/dz_clear_link_web.php 输入帖子pid号进行清除

找帖子pid号的方法:

a. 找到有问题帖子,点击“回复”,找到链接中的reppost=1153981,这个1153981就是这个帖子的pid

b. 用phpmyadmin登陆数据库后搜索非法信息,找到帖子pid

如果你使用的是独立主机(windows或者linux系统),在1和2这两步的基础上,在windows命令行下或者linux的终端界面下执行dz_clear_link_cmd.php程序,格式为:

php dz_clear_link_cmd.php 帖子pid号

这样也可以清除帖子中的垃圾信息

dz_clear_link.zip