很久沒更新 WordPress 教程了,因為最近小編各種忙,實在抽不出時間來想代碼,今天小編趁着週末還有點時間空閒先給大家來一發教程。之前小編在 vps 教程中寫過一篇通過 nginx 過濾惡意訪問的教程:《 VPS 分析日誌利用 nginx 過濾惡意訪問》,但是很多小夥伴還用的是虛擬主機,所以此方法根本用不了。今天小編就教大家如何直接用 WordPresss 自身來過濾惡意訪問 (HTTP_USER_AGENT) 。

$ua = $_SERVER['HTTP_USER_AGENT'];
$now_ua = array('FeedDemon ','ZmEu','Indy Library','oBot','jaunty'); //將惡意 USER_AGENT 存入數組
if(!$ua) { //禁止空 USER_AGENT,dedecms 等主流採集程序都是空 USER_AGENT,部分 sql 注入工具也是空 USER_AGENT
header("Content-type: text/html; charset=utf-8");
wp_die('請勿採集本站,因為採集的站長木 JJ!');
}else{
    foreach($now_ua as $value )
    if(eregi($value,$ua)) {
    header("Content-type: text/html; charset=utf-8");
    wp_die('請勿採集本站,因為採集的站長木 JJ!');
    }
}

將以上代碼加到 functions.php 的第一個<?php 之後即可,本站只寫了部分惡意 User Agent,如果某位小夥伴發現新的惡意 User Agent 可以將 User Agent 的關鍵字寫 $now_ua 數組裏面,每個關鍵字用單引號包括起來,關鍵字之間用英文逗號分割。非 WordPress 的 php 程序也可以使用這段代碼只需要將代碼中的 wp_die 改成 die,然後將代碼加入到網站公用文件中。

本站收集的惡意 User Agent 列表:https://www.weixiaoduo.com/tool/bot.txt