婷姐 发表于 2023-7-26 12:42:26

如何把黑客生成的垃圾链接设置成404,方便消除百度摘要的影响

网站之前一段时间中了木马,后来清除了,但生成了很多不规则的链接,这些链接仍然可以打开,大部分是门户页,网址类似如下:

https://www.***.com/?aid=04q3k32023061112.ppt
https://www.***.com/?id=50385882023060919.doc
https://www.***.com/?news=0sP7962023061208.doc
https://www.***.com/?20230611146649260.ppt
https://www.***/index.php?r=8777202023061023.ppt


有没有办法把这些不规律的链接直接跳成404?方便消除百度摘要的影响;

目前是通过“.htaccess”里面设置

“RewriteCond %{QUERY_STRING} (^|&)id=
RewriteRule .* -
RewriteCond %{QUERY_STRING} (^|&)aid=
RewriteRule .* - ”

来达到设置404状态;但是这样就会把绝大部分正常网址 也设置为404状态啦,

我发现把这些乱七八糟的网址输入到discuz官方网址后面,也能访问,


我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-16 18:36:03

要将黑客生成的垃圾链接设置为404状态,同时不影响正常的链接访问,可以通过以下步骤来实现:

### 1. 使用 `.htaccess` 文件进行精确匹配
你可以通过 `.htaccess` 文件中的 `RewriteCond` 和 `RewriteRule` 来精确匹配这些垃圾链接,并将它们重定向到404页面。以下是一个示例配置:

RewriteEngine On

# 匹配 aid 参数
RewriteCond %{QUERY_STRING} ^aid=+\.(ppt|doc)$
RewriteRule .* -

# 匹配 id 参数
RewriteCond %{QUERY_STRING} ^id=+\.(ppt|doc)$
RewriteRule .* -

# 匹配 news 参数
RewriteCond %{QUERY_STRING} ^news=+\.(ppt|doc)$
RewriteRule .* -

# 匹配其他不规则的参数
RewriteCond %{QUERY_STRING} ^+\.(ppt|doc)$
RewriteRule .* -

### 2. 使用 PHP 进行更复杂的逻辑处理
如果你需要更复杂的逻辑来处理这些垃圾链接,可以在 `index.php` 或其他入口文件中添加以下代码:

$query_string = $_SERVER['QUERY_STRING'];

// 定义垃圾链接的正则表达式
$patterns = [
    '/^aid=+\.(ppt|doc)$/',
    '/^id=+\.(ppt|doc)$/',
    '/^news=+\.(ppt|doc)$/',
    '/^+\.(ppt|doc)$/'
];

foreach ($patterns as $pattern) {
    if (preg_match($pattern, $query_string)) {
      header("HTTP/1.0 404 Not Found");
      exit;
    }
}

### 3. 使用 Discuz! 插件或自定义模块
如果你熟悉 Discuz! 插件开发,可以编写一个插件来拦截这些垃圾链接并返回404状态。以下是一个简单的插件示例:

<?php
if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

class plugin_404_redirect {
    function global_header() {
      $query_string = $_SERVER['QUERY_STRING'];

      $patterns = [
            '/^aid=+\.(ppt|doc)$/',
            '/^id=+\.(ppt|doc)$/',
            '/^news=+\.(ppt|doc)$/',
            '/^+\.(ppt|doc)$/'
      ];

      foreach ($patterns as $pattern) {
            if (preg_match($pattern, $query_string)) {
                header("HTTP/1.0 404 Not Found");
                exit;
            }
      }
    }
}

### 4. 提交死链给百度
在设置好404状态后,你可以通过百度站长工具提交这些死链,以加速百度索引的更新。

### 5. 定期检查日志
定期检查服务器日志,确保没有新的垃圾链接生成,并及时更新你的规则。

通过以上方法,你可以有效地将这些垃圾链接设置为404状态,同时不影响正常的链接访问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-16 18:36:32

要将这些不规则的垃圾链接设置为404状态,同时不影响正常的链接访问,可以通过在`.htaccess`文件中进行更精确的规则设置。你可以通过正则表达式来匹配这些特定的垃圾链接模式,并将它们重定向到404页面。

以下是一个示例的`.htaccess`配置,你可以根据你的具体情况进行调整:

RewriteEngine On

# 匹配 aid 参数并跳转到404
RewriteCond %{QUERY_STRING} ^aid=+\.(ppt|doc)$
RewriteRule .* -

# 匹配 id 参数并跳转到404
RewriteCond %{QUERY_STRING} ^id=+\.(ppt|doc)$
RewriteRule .* -

# 匹配 news 参数并跳转到404
RewriteCond %{QUERY_STRING} ^news=+\.(ppt|doc)$
RewriteRule .* -

# 匹配其他不规则的参数并跳转到404
RewriteCond %{QUERY_STRING} ^{14}\.(ppt|doc)$
RewriteRule .* -

# 匹配 index.php?r= 参数并跳转到404
RewriteCond %{QUERY_STRING} ^r=++\.(ppt|doc)$
RewriteRule .* -

### 解释:
1. **RewriteEngine On**:启用重写引擎。
2. **RewriteCond**:条件匹配,用于匹配特定的查询字符串。
3. **RewriteRule**:重写规则,将匹配的URL重定向到404状态。
4. ****:返回404状态码,并停止后续规则的匹配。

### 注意事项:
- 这些规则假设你的垃圾链接的查询字符串参数(如`aid`、`id`、`news`等)后面跟着一个文件名(如`.ppt`或`.doc`)。
- 如果你有其他特定的垃圾链接模式,可以根据需要添加更多的`RewriteCond`和`RewriteRule`。
- 在修改`.htaccess`文件之前,建议先备份现有的文件,以防出现错误。

### 测试:
在应用这些规则后,你可以通过访问这些垃圾链接来测试是否正确地返回了404状态码。如果一切正常,这些链接将不再显示内容,而是返回404错误页面。

如果你有更多的垃圾链接模式,可以根据需要进一步调整正则表达式。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 如何把黑客生成的垃圾链接设置成404,方便消除百度摘要的影响