文章最后更新时间:

一、问题的提出
如今恶意SEO人员玩出了花,他们可能会利用你网站的搜索功能进行不当行为,例如在搜索框中输入违规内容或包含域名的关键词,试图进行将他们的内容恶意推广到搜索引擎或破坏网站秩序。这些恶意行为不仅会影响用户体验,还可能给网站带来安全风险。为了解决这个问题,我们需要一种有效的方法来拦截搜索违规内容,防止恶意留痕。
二、解决方案:搜索违规内容拦截代码
将下方两个代码粘贴到function.php最尾部即可
子比主题,在主题根目录创建func.php文件(若已经有了,当我没说),顶部添加<?php(若已经有了,当我没说),再添加代码
增加违禁词拦截公共检测函数代码(注意,会增加服务器负担)
//违禁词检测
function checkForbiddenWords($wjc) {
$file_wjc = '/wp-content/themes/zibll/wjc.txt';//敏感词库的文件路径
$keywords = file_get_contents($_SERVER['DOCUMENT_ROOT']. $file_wjc);//从txt文件中获取关键词
$keywords = explode(',', $keywords);
foreach ($keywords as $keyword) {
if (!empty($keyword) && strpos($wjc, $keyword)!== false) {
// 如果匹配到关键词,返回false
return false;
}
}
// 如果没有匹配到关键词,返回true
return true;
}
以下是一段用于WordPress的搜索违规内容拦截代码:
//搜索违规内容重定向
function wxs_filter_search_results() {
//排除管理员
$current_user = wp_get_current_user();
//你可以修改为你的账号,删除多余的账号名
if ( ! in_array( $current_user->user_login, array( '2031301686', '天无神话', '某用户账号', ) ) ) {
//检测功能
$redirect_needed = false; //添加一个变量来标记是否需要重定向
if (is_search()) {
//获取搜索内容
$search_query = get_search_query();
//判断搜索词是否为空
if (!empty($search_query)) {
//检查搜索内容中是否包含域名
$pattern = '/\b(www\.)?[a-zA-Z0-9-]+\.(com|net|org|edu|gov|info|biz|co|cc|io|me|tv|cc|us|uk|ca|au|de|jp|cn|ru)\b/';
if (preg_match($pattern, $search_query)) {
$redirect_needed = true;
}
//检查搜索内容中是否包含违禁词,若未添加checkForbiddenWords函数,则不进行违禁词判断,减轻服务器压力
if (function_exists('checkForbiddenWords')) {
if (!checkForbiddenWords($search_query)) {
$redirect_needed = true;
}
}
//判断是否需要重定向,其中/illegal-shielding是你自己创建的网页,你也可以改为/,跳回首页,或者将{}中的代码修改
if ($redirect_needed) {
wp_redirect('/illegal-shielding');
exit;
}
}
}
}
}
add_action('template_redirect', 'wxs_filter_search_results');
这两段代码通过以下几个步骤实现搜索违规内容拦截:
- 排除管理员:首先,代码排除了特定的管理员用户,确保管理员在搜索时不受限制。这是为了方便管理员进行网站管理和调试。
- 检测搜索请求:当用户进行搜索时,代码会检测是否为搜索请求。如果是搜索请求,它将获取用户输入的搜索内容。
- 检查域名:代码使用正则表达式检查搜索内容中是否包含域名。如果搜索内容中包含域名,可能是恶意用户试图进行推广或其他不当行为,因此将标记为需要重定向。
- 检查违禁词:通过调用函数
checkForbiddenWords,代码检查搜索内容中是否包含违禁词。如果包含违禁词,也将标记为需要重定向。 - 重定向:如果标记为需要重定向,代码将用户重定向到
/illegal-shielding页面(需要你自己去创建这个页面,你也可以改为/,跳回首页),以防止恶意留痕。
三、防止恶意留痕的重要性
- 保护用户体验:恶意留痕可能会导致搜索引擎的搜索结果中出现不相关或违规的内容,影响用户的搜索体验。通过拦截搜索违规内容,可以确保用户获得准确、合法的搜索结果,提高用户满意度。
- 遵守法律法规:某些搜索内容可能涉及违法或不适当的信息。通过拦截这些内容,网站可以遵守法律法规,避免法律纠纷。
- 保护网站声誉:如果网站上出现大量恶意留痕,可能会影响网站的声誉。通过及时拦截违规内容,可以维护网站的良好形象。
四、如何进一步加强安全措施
- 定期更新违禁词列表:随着时间的推移,新的违禁词可能会出现。因此,定期更新违禁词列表是很重要的,可以确保拦截功能始终有效。词库下载:https://wxsnote.cn/350.html
- 加强用户教育:向用户宣传网站的使用规则和禁止行为,可以减少恶意留痕的发生。可以在网站上发布相关的提示信息,或者在用户注册时提供明确的使用条款。
- 监控和分析搜索日志:定期分析搜索日志可以帮助发现潜在的安全问题和恶意行为。可以使用插件或工具来监控搜索日志,并及时采取措施应对异常情况。
- 与安全插件集成:可以考虑与其他安全插件集成,以增强网站的安全性。例如,可以与防火墙插件或恶意软件检测插件集成,共同保护网站。
五、总结
通过使用上述搜索违规内容拦截代码,我们可以有效地防止恶意留痕,保护 WordPress 网站的安全和用户体验。在实施这一功能时,我们还可以采取进一步的安全措施,如定期更新违禁词列表、加强用户教育、监控搜索日志和与安全插件集成等。只有不断加强网站的安全防护,才能确保网站的稳定运行。
© 版权声明
© 版权声明 All Rights Reserved
THE END







暂无评论内容