获取报价

529501683@qq.com 微信扣扣同号

联系我帮您解决你的网站安全问题,请点击最左侧获取报价!!!

WordPress安全防护指南:确保WP事后运行安全

选择信誉良好的插件和主题

插件和主题固然很方便,但是会带来性能和安全性问题,所以在选择插件和主题的时候一定要在WP官方仓库下载。

下载什么样的插件和主题可以看看以下的经验总结:

  1. 查看当前插件或主题的下载次数和对应的评论。
  2. 查看这个插件和主题最近更新的状况,看看是不是一直保持着更新维护的状态。
  3. 查看并研究写该插件或主题的作者,看看她在互联网上提供的其他技术内容信息。
  4. 检查并确认当前主题和插件的兼容性问题。

总之在安装新插件或主题的时候对网站进行全量备份。

删除显示的版本信息

这个很重要,原因就在于,假如你的WordPress网站版本没有隐藏,并且没有更新到当前WordPress官方最新的版本,那么恰好你这个没有更新到最新版本的WordPress有对应的高危漏洞,并且利用难度很简单,那么此时当前网站最容易攻击者攻击。

删除WordPress版本信息的方法有两种,一种是自定义代码,另一种是使用插件。

在激活的主题中,找到functions.php文件中添加如下代码:

/*
Hide scripts and style version
 */

function SG_remove_wp_version_strings( $src ){
        
        global $wp_version;
        parse_str(parse_url($src, PHP_URL_QUERY), $query);
        if ( !empty($query['ver']) && $query['ver'] === $wp_version ){
                $src = remove_query_arg('ver', $src);
        }

        return $src;
}

add_filter( 'script_loader_src', 'SG_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'SG_remove_wp_version_strings' );

/*
Hide generator tag from the header
*/

function SG_remove_wp_generator() {
        return '';
}

add_filter('the_generator', 'SG_remove_wp_generator');

其他的一些WordPress安全指南建议是完全删除这些文件,但是我的建议是阻止它们的访问,因为一个新的WordPress更新或重新安装可能会生成一个新的这样的文件。

隐藏PHP告警和调试信息

隐藏PHP警告和通知信息是非常重要的,其中一个核心的原因是这些警告和通知信息暴露给攻击者,然后攻击者可以利用这些信息很轻松的找到目标网站的脆弱性,然后利用这个脆弱性直接拿到目标网站的权限。

举个很简单的例子,比如攻击者在尝试攻击当前网站,然后发现存在PHP警告和通知信息,那么此时这类信息中通常会包含WordPress版本信息,网站的绝对路径和其他跟服务器相关的信息,基于这些信息就可以找到合适的攻击payload,然后进一步攻击,例如:网站存在SQL注入漏洞,然后攻击者基于PHP警告和通知的信息,发现网站的绝对路径,在其他条件和环境都具备的情况下,那么攻击者是可以拿到目标网站的权限。

隐藏PHP警告和通知的操作方式是在wp-config.php文件中添加下列代码:

error_reporting( 0 );
ini_set( 'display_errors', 0 );

删除安装文档文件

这个文件是必须要删除的,一般WordPress安装完成之后,这个文件会写一些跟WordPress安装相关的信息,这些信息如果被恶意攻击者知道了,就看有针对性采取攻击。

删除方式有两种,一种是直接进入服务器后台或者托管商提供的管理面板进行删除即可。

另一种方式就是使用SG官方的插件,直接删除默认的Readme.html文件(Delete the Default Readme.html)

隐藏Apache和PHP信息

隐藏的Apache和PHP信息的原因,跟上面几个原因都差不多,直白点说就是怕恶意攻击者知道了当前网站的Apache和PHP版本,然后基于这个版本信息查询确认是否有可以利用的高危漏洞。

隐藏Apache和PHP信息的方法是在网站的根目录添加.htaccess文件,然后添加如下代码:

ServerSignature Off
Header unset X-Powered-By

在php.ini文件中添加如下代码:

expose_php = Off

保持WordPress为最新版本

需要时常更新WordPress核心,插件和主题到最新版本,推荐是先更新WordPress核心至最新版本,然后插件和主题没有特定的顺序。

自动更新Word Press 核心(WordPress core)在wp-config.php文件中添加如下代码:

define( 'WP_AUTO_UPDATE_CORE', true );

# 上述生效的前提是没有禁用WordPress Core,如果禁用是不生效的!如果成功自动更新WordPress Core那么对应的WordPress管理员邮箱会收到更新的邮件通知!

自动更新插件是在functions.php文件中添加如下代码:

add_filter('auto_update_plugin', '__return_true');

# 添加上述代码之前需要删除所有不使用的插件,如果只是简单的禁用不使用的插件,那么一旦这些插件存在高危漏洞,即使在禁用的情况下也是能够被利用的,所以不使用的插件请删除!!!

自动更新主题同样是在functions.php文件中进行添加,具体代码如下:

add_filter( 'auto_update_theme', '__return_true');

上述所有操作之前记得先备份整个网站,如果是使用Siteground官方,那么官方会自动每天备份,如果不是,可以自己在服务器后台设置计划任务每天自动备份,这样上述自动更新WordPress之前都已经备份好了。

周期性安全扫描

这个就很简单了,可以使用WPscan工具对网站进行定期的安全扫描,或者使用自己的服务托管商进行定期的安全扫描,不过这是项收费功能,可以根据自己需求操作。

选择值得信赖的托管公司

一句话就是选择大型服务托管商,看它们的官方网站是否默认提供了安全相关的基础设施。

通过验证码缓解网站安全

使用验证码的目的是为了缓解互联网上的一些机器人流量,当然还有一些垃圾评论垃圾邮件的信息,特别是WordPress网站带联系表单功能,恶意攻击者会通过联系表单提供一些垃圾信息,这样会给网站的性能和安全带来非常大的影响。

除了上述影响还有一种影响就是攻击者尝试使用程序对网站的登录后台进行批量的登录尝试,如果没有验证码功能会严重影响网站的性能。

基于上述原因我推荐使用一款Google验证码插件用来缓解此类问题。

事后应急响应解决办法 一般网站被黑了,需要补救的措施是要根据网站被黑的实际情况来确认如何操作,这类操作在安全界是有个专业的名词是叫应急响应。

  • 基于此类情况,如果专门只针对WordPress网站被黑的场景,基于大多数案例发生的实际情况,我给出如下三个通用的步骤来进行补救,具体如下:
    • 禁用所有的插件,等网站问题解决后再逐步重装插件。
    • 使用WAF或者其他措施设置访问控制,配置白名单只允许自己的白名单IP地址能够访问WordPress后台,同时立即在后台更改WordPress管理员密码。
    • 踢出所有在登录的WordPress后台的用户。

上述操作一般情况下对应的服务托管商会有基础的应对措施,按照提示操作即可,比如Siteground官方提供的Security Optimizer plugin 就可以解决这类问题。

总之上述只是一个基础的应对措施,具体还得是根据实际情况来操作。

Photo of author

Fenotion Woo

从专业的角度,为你提供最优的安全解决方案,我的安全解决方案充分充分考虑服务器网站的性能问题,做到以最小的操作方式解决安全问题。

Leave a comment