WordPress网站防止他人恶意攻击的8种方法

⟁ best365官网al ⏳ 2026-09-28 14:47:08 👤 admin 👁️ 4002 ❤️ 79
WordPress网站防止他人恶意攻击的8种方法

本站开放注册是想让更多的同道中人一起学习进步分享所得的目的,单近日(2019.06.07-10)本站遭到不明人士恶意注册,很是气人,所以本篇文章分享的是网站如何防止他人恶意攻击。

真是搞的是很烦人,本站采用的是WordPress程序,所以就想着添加一个注册时的验证,到网上搜到很多,比如使用极验的方法,但是还要注册账号什么的,比较麻烦,不太想用。

在网上全百科搜集了以下8中比较实用的方法,有些适用于所有网站。

第一种直接关闭注册功能。也可以在注册页面上加入验证码等功能,防止机器恶意注册。

第二种一个纯代码实现的方法。具体如下:

把下面这段代码添加到自己的functions.php,其中的验证问题我使用了本站的域名“www.quanbaike.com”,你也可以改成其他内容。注意改的时候,代码第四行和倒数第四行都有,要改两处哦

代码语言:javascript复制add_action( 'register_form', 'add_security_question' );function add_security_question() { ?>

if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) { return $errors->add( 'proofempty', '错误: 您还没有回答问题。' ); // 如果答案不正确

} elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'www.quanbaike.com' ) { return $errors->add( 'prooffail', '错误: 您的回答不正确。' ); }}第三种安装Wordfence Security插件,可以在插件里面查看最近登陆的ip,以及尝试注册、登陆的ip,针对该ip(段)进行block。

第四种更改wordpress登陆URL防止恶意注册

WP 默认的登陆URL是wp-login.php或wp-admin.php(许多spamer会根据这些footprint来收集可注册的wordpress站点,然后你的站内就多出许多垃圾评论。如果你不想成为其中的一员,那就改改登录url吧)

可以通过在 .htaccess 添加如下代码把登陆 URL 改成 login:

代码语言:javascript复制RewriteRule ^login$ http://www.quanbaike.com/wp-login.php [NC,L]或者login改为自己的认为好记又不容易被识别的字符也可以哦

第五种随机加法验证码

把以下全部代码丢进模板函数functions.php

代码语言:javascript复制/*-----------------------------------------------------------------------------------*/

/* WordPress注册用户随机数字验证码

/*-----------------------------------------------------------------------------------*/

# 注册用户添加验证码第一种

function loper_register_english_figures() {

# 获取两个随机数, 范围0~99

$num1=rand(0,99);

$num2=rand(0,99);

echo "

";

}

add_action('register_form','loper_register_english_figures');

# 判断验证码是否空白和错误

function loper_register_calculation() {

$sum=$_POST['sum'];

switch($sum){

case $_POST['num1']+$_POST['num2']:break;

case null:wp_die( __( '错误:请填入验证码!' ), '', array( 'back_link'=>true ) );break;

default:wp_die( __( '错误:验证码不正确!' ), '', array( 'back_link'=>true ) );}

}

add_action( 'register_post', 'loper_register_calculation');第六种WordPress用户注册时验证邮箱真实性实现代码

邮箱地址验证接口

请求地址:http://email.qhyt1688.com/Home/EValidation

请求方式:post

请求参数:emails=邮箱地址

返回值:包含邮箱地址验证结果的json数据。

DUX主题注册增加邮箱地址真实性验证

打开dux主题下的action文件里面的log.php文件,增加如下代码:

代码语言:javascript复制function SendPost_email($FullHttpUrl, $Req, $isHttps)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $Req);

curl_setopt($ch, CURLOPT_TIMEOUT, 3);

curl_setopt($ch, CURLOPT_URL, $FullHttpUrl);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if ($isHttps === true) {

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

}

$result = curl_exec($ch);

return $result;

}这是一个PHP发送post的方法,有三个参数,第一个是请求地址,第二个是请求参数,第三个是是否是https请求,由于接口是http,所以我们这里写fasle即可。

继续在log.php的第83行后,也就是邮箱格式验证后面写上如下代码,进行邮箱地址真实性验证。

代码语言:javascript复制$res=SendPost_email('http://email.qhyt1688.com/Home/EValidation','emails='.$ui['email'],false);

$stat=json_decode($res)->r[0]->emailSate;

if($stat!=1){

print_r(json_encode(array('error'=>1, 'msg'=>'邮箱不存在!')));

exit();

}返回json有3个状态,0是邮箱地址不存在,1是邮箱地址存在,2是不支持的邮箱地址。

到此邮箱地址真实性检查结束,正确率比较高。SendPost_email方法也可以放在functions.php中,因为dux的log.php接口文件中引入了wp核心,可以直接使用functions.php与WordPress提供的函数。

第七种封锁某个ip访问(本方法适用于所有网站)

创建.htaccess文件,然后写上限制代码

Order Allow,Deny ##拒绝开关,allow表示拒绝访问

allow from all

#以下IP不能通行

Deny from 222.186.23.24

举例代码,可设置禁止多个ip

代码语言:javascript复制

Order Allow,Deny

Allow from all

Deny from 122.112.158.56 123.101.182.183

还可设置禁止ip段

代码语言:javascript复制Order Allow,Deny

Allow from all

Deny from 192.168.0.0/24保存后将此文件上传至服务器,默认放在根目录下。

相关推荐

BBC Learning English

BBC Learning English

📅 10-15 👁️ 5760
男性射完多久能再射

男性射完多久能再射

📅 06-27 👁️ 2070