1 简介
wp站点防止别人进行DDOS攻击。
2 配置位置
位置:根目录/wp-config.php
3 配置内容
在【根目录/wp-config.php】文件的开头添加如下代码:
if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/index.php?lang=') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/index.php?s=') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/wp-cron.php?doing_wp_cron=') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/backup/') !== false){
if(strpos($_SERVER['REQUEST_URI'], '.tar.gz') !== false || strpos($_SERVER['REQUEST_URI'], '.sql.tar') !== false || strpos($_SERVER['REQUEST_URI'], '.zip') !== false || strpos($_SERVER['REQUEST_URI'], '.sql') !== false || strpos($_SERVER['REQUEST_URI'], '.rar') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/backups/') !== false){
if(strpos($_SERVER['REQUEST_URI'], '.tar.gz') !== false || strpos($_SERVER['REQUEST_URI'], '.sql.tar') !== false || strpos($_SERVER['REQUEST_URI'], '.zip') !== false || strpos($_SERVER['REQUEST_URI'], '.sql') !== false || strpos($_SERVER['REQUEST_URI'], '.rar') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/back/') !== false){
if(strpos($_SERVER['REQUEST_URI'], '.tar.gz') !== false || strpos($_SERVER['REQUEST_URI'], '.sql.tar') !== false || strpos($_SERVER['REQUEST_URI'], '.zip') !== false || strpos($_SERVER['REQUEST_URI'], '.sql') !== false || strpos($_SERVER['REQUEST_URI'], '.rar') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/old/') !== false){
if(strpos($_SERVER['REQUEST_URI'], '.tar.gz') !== false || strpos($_SERVER['REQUEST_URI'], '.sql.tar') !== false || strpos($_SERVER['REQUEST_URI'], '.zip') !== false || strpos($_SERVER['REQUEST_URI'], '.sql') !== false || strpos($_SERVER['REQUEST_URI'], '.rar') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/?author=') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/wp-json/wp/v2/') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/css/index.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], 'allow_url_include') !== false){
if (strpos($_SERVER['REQUEST_URI'], 'php://input') !== false) {
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/.DS_Store') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/css/') !== false){
if (strpos($_SERVER['REQUEST_URI'], '.php') !== false) {
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
}
if(strpos($_SERVER['REQUEST_URI'], '/www.sql') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/dump.sql') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/backup.sql') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/database.sql') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
if(strpos($_SERVER['REQUEST_URI'], '/cgi-bin/luci/;stok=/locale?') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}