·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

如何把黑客生成的垃圾链接设置成404

1104 2
发表于 2020-12-3 14:18:45 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
网站之前一段时间中了木马,后来清除了,但生成了很多不规则的链接,这些链接仍然可以打开,有的是指向社区首页,有的是门户页,如图: 如何把黑客生成的垃圾链接设置成404 可可,点微,it618,西瓜
如何把黑客生成的垃圾链接设置成404 可可,点微,it618,西瓜

有没有办法把这些不规律的链接直接跳成404?
我发现把这些乱七八糟的网址输入到discuz官方网址后面,也能访问,
如何把黑客生成的垃圾链接设置成404 可可,点微,it618,西瓜
如何把黑客生成的垃圾链接设置成404 可可,点微,it618,西瓜
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-14 09:21:27 | 查看全部
要实现将黑客生成的垃圾链接统一返回404状态码,可以采取以下技术方案:

1. 服务器层面拦截方案(推荐)
=== Apache环境 ===
在.htaccess文件中添加:
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. # 拦截异常参数特征
  4. RewriteCond %{QUERY_STRING} \.php\/[a-z0-9]{10,} [NC,OR]
  5. RewriteCond %{QUERY_STRING} (eval|base64_encode|cmd) [NC]
  6. RewriteRule ^(.*)$ - [R=404,L]

  7. # 拦截异常路径
  8. RewriteCond %{REQUEST_URI} \/(data|images)\/[a-f0-9]{32}\.html$ [NC]
  9. RewriteRule .* - [R=404,L]
  10. </IfModule>
复制代码


=== Nginx环境 ===
在server配置块中添加:
  1. location ~* \.(php|html)/[a-z0-9]{16,} {
  2.     return 404;
  3. }

  4. location ~* (eval|base64_encode|cmd) {
  5.     return 404;
  6. }

  7. if ($query_string ~* "\.php\/[a-z0-9]{10,}") {
  8.     return 404;
  9. }
复制代码


2. Discuz核心拦截方案
在/source/class/discuz/discuz_application.php约第188行后插入:

  1. // 检测异常URL参数
  2. $attack_patterns = array(
  3.     '/\/[0-9a-f]{32}\.html/i',
  4.     '/\/(data|images|static)\/[0-9a-z]{16,}/i',
  5.     '/(cmd|wget|curl|uname|phpinfo)/i'
  6. );

  7. foreach($_GET as $key => $value){
  8.     foreach($attack_patterns as $pattern){
  9.         if(preg_match($pattern, $value) || preg_match($pattern, $key)){
  10.             header('HTTP/1.1 404 Not Found');
  11.             exit();
  12.         }
  13.     }
  14. }
复制代码


3. 伪静态规则增强
修改伪静态规则文件,在原有规则前增加拦截规则:

=== Apache示例 ===
  1. # 拦截非法后缀
  2. RewriteRule ^(forum|portal).+\.(exe|dll|sh)$ - [R=404,L]

  3. # 拦截异常参数结构
  4. RewriteCond %{QUERY_STRING} ^(.{50,})$ [NC]
  5. RewriteRule ^(forum|portal)\.php$ - [R=404,L]
复制代码


4. 文件监控方案
创建/source/function/url_scan.func.php:

  1. <?php
  2. if(!defined('IN_DISCUZ')) exit('Access Denied');

  3. function check_url_attack() {
  4.     $uri = $_SERVER['REQUEST_URI'];
  5.    
  6.     // 检测URL长度超过200字符
  7.     if(strlen($uri) > 200) {
  8.         dheader('HTTP/1.1 404 Not Found');
  9.         exit();
  10.     }
  11.    
  12.     // 检测连续重复字符
  13.     if(preg_match('/(\w)\1{8}/', $uri)) {
  14.         dheader('HTTP/1.1 404 Not Found');
  15.         exit();
  16.     }
  17.    
  18.     // 检测非常用参数名
  19.     $valid_params = array('mod','tid','fid','page','id');
  20.     foreach($_GET as $key => $val){
  21.         if(!in_array($key, $valid_params) && !preg_match('/^[a-z_]{1,8}$/', $key)){
  22.             dheader('HTTP/1.1 404 Not Found');
  23.             exit();
  24.         }
  25.     }
  26. }
复制代码


在全局入口文件(forum.php/portal.php等)顶部添加:
  1. require_once './source/function/url_scan.func.php';
  2. check_url_attack();
复制代码


5. 安全加固建议
- 检查data目录权限是否为755
- 删除非必要安装文件(install/index.php)
- 更新UCenter通信密钥
- 检查第三方插件目录是否存在异常文件
- 开启Discuz内置的防火墙功能

以上方案实施后,可通过以下方式验证效果:
  1. # 测试异常URL
  2. curl -I "http://yoursite.com/forum.php?hjkgfdswert34567"
  3. # 应返回HTTP/1.1 404 Not Found

  4. # 检测长URL
  5. curl -I "http://yoursite.com/portal.php?abcdefghijklmnopqrstuvwxyz"
  6. # 应触发404响应
复制代码


注:建议在修改前备份网站数据,并在测试环境中验证规则有效性。如遇到规则冲突,可根据实际URL结构调整正则表达式参数阈值。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-18 03:21:13 | 查看全部
要将这些由黑客生成的垃圾链接设置为404错误页面,你可以通过以下几种方法来实现:

### 方法一:通过.htaccess文件设置重定向
如果你的网站运行在Apache服务器上,你可以通过修改`.htaccess`文件来实现将特定模式的URL重定向到404页面。

1. **编辑.htaccess文件**:
   打开你的网站根目录下的`.htaccess`文件(如果没有,可以创建一个)。

2. **添加重定向规则**:
   假设这些垃圾链接的URL模式是`/random-string`或`/random-string/`,你可以在`.htaccess`文件中添加以下规则:

  
  1. RewriteEngine On
  2.    RewriteCond %{REQUEST_URI} ^/random-string/?$
  3.    RewriteRule .* - [R=404,L]
复制代码


   这里的`random-string`是垃圾链接中的随机字符串部分。你可以根据实际情况调整正则表达式来匹配更多的垃圾链接。

3. **保存并测试**:
   保存`.htaccess`文件后,访问这些垃圾链接,应该会返回404错误。

### 方法二:通过Discuz插件或自定义代码实现
如果你不想修改服务器配置文件,可以通过Discuz插件或自定义代码来实现。

1. **使用插件**:
   你可以在DZ插件网(https://www.dz-x.net/)上寻找相关的插件,或者自己开发一个插件来拦截这些垃圾链接并返回404。

2. **自定义代码**:
   你可以在Discuz的全局文件(如`source/class/discuz/discuz_application.php`)中添加自定义代码来检测这些垃圾链接并返回404。

   例如,在`discuz_application.php`的`init()`方法中添加以下代码:

  
  1. $requestUri = $_SERVER['REQUEST_URI'];
  2.    if (preg_match('/\/random-string\/?$/', $requestUri)) {
  3.        header("HTTP/1.0 404 Not Found");
  4.        exit;
  5.    }
复制代码


   这段代码会检测请求的URL是否匹配垃圾链接的模式,如果匹配则返回404错误。

### 方法三:通过Nginx配置(如果使用Nginx)
如果你的网站运行在Nginx服务器上,你可以通过修改Nginx配置文件来实现。

1. **编辑Nginx配置文件**:
   打开你的Nginx配置文件(通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/default`)。

2. **添加重定向规则**:
   在`server`块中添加以下规则:

  
  1. location ~ ^/random-string/?$ {
  2.        return 404;
  3.    }
复制代码


   这里的`random-string`是垃圾链接中的随机字符串部分。你可以根据实际情况调整正则表达式来匹配更多的垃圾链接。

3. **重启Nginx**:
   保存配置文件后,重启Nginx服务器以使更改生效:

  
  1. sudo systemctl restart nginx
复制代码


### 方法四:通过Discuz后台设置
如果你不想修改代码或服务器配置,可以通过Discuz后台的URL重写功能来实现。

1. **进入Discuz后台**:
   登录Discuz后台,进入“全局” -> “SEO设置” -> “URL 静态化”。

2. **添加自定义规则**:
   在“自定义规则”中添加一条规则,将垃圾链接重定向到404页面。例如:

  
  1. ^random-string/?$ 404
复制代码


3. **保存并测试**:
   保存设置后,访问这些垃圾链接,应该会返回404错误。

### 总结
通过以上方法,你可以有效地将这些垃圾链接设置为404错误页面,从而避免它们对网站的影响。如果你对服务器配置或代码修改不熟悉,建议使用Discuz后台的URL重写功能或寻找相关插件来实现。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.141.46.77,GMT+8, 2025-3-26 08:17 , Processed in 0.816859 second(s), 79 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表