全百科精品资源分享
免费优质资源下载平台

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

文章目录

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

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

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

第一种

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

第二种

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

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

add_action( 'register_form', 'add_security_question' );function add_security_question() { ?>    
<p>    
<label><?php _e('请输入本站域名:www.quanbaike.com') ?><br />        
<input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
</p>
<?php }     add_action( 'register_post', 'add_security_question_validate', 10, 3 );function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {    // 如果没有回答
    if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {        return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。'  );    // 如果答案不正确
    } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'www.quanbaike.com' ) {        return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。'  );    }}

第三种

安装Wordfence Security插件,可以在插件里面查看最近登陆的ip,以及尝试注册、登陆的ip,针对该ip(段)进行block。

第四种

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

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

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

RewriteRule ^login$ http://www.quanbaike.com/wp-login.php [NC,L]

或者login改为自己的认为好记又不容易被识别的字符也可以哦

第五种

随机加法验证码

WordPress网站防止他人恶意攻击的8种方法
把以下全部代码丢进模板函数functions.php

/*-----------------------------------------------------------------------------------*/
/* WordPress注册用户随机数字验证码
/*-----------------------------------------------------------------------------------*/
# 注册用户添加验证码第一种
function loper_register_english_figures() {
# 获取两个随机数, 范围0~99
$num1=rand(0,99);
$num2=rand(0,99);
echo "<p>
<label for='math' class='small'>验证码:$num1 + $num2 = ? </label>
<input id='math' type='text' name='sum' class='input' size='25'>
<input type='hidden' name='num1' value='$num1'>
<input type='hidden' name='num2' value='$num2'></p>";
}
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用户注册时验证邮箱真实性实现代码

WordPress用户注册时验证邮箱真实性实现代码

邮箱地址验证接口

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

请求方式:post

请求参数:emails=邮箱地址

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

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

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

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行后,也就是邮箱格式验证后面写上如下代码,进行邮箱地址真实性验证。

$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

<IfModule mod_rewrite.c>
Order Allow,Deny
Allow from all
Deny from 122.112.158.56 123.101.182.183
</IfModule>

还可设置禁止ip段

Order Allow,Deny
Allow from all
Deny from 192.168.0.0/24

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

本文由全百科网分享提供,分享更多精品资源,帮助你我共同成长。

赞(0) 打赏
本站内容均来自网络收集,转载内容不代表本网站的观点及意见,仅供用户参考和借鉴。如对稿件内容及版权问题有疑议,请及时联系全百科官方邮箱: smtsg@foxmail.com全百科网 » WordPress网站防止他人恶意攻击的8种方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏