美文网首页读书
WordPress安全指南 -- 进阶篇

WordPress安全指南 -- 进阶篇

作者: 未定义变量 | 来源:发表于2021-03-21 21:31 被阅读0次

    终极WordPress安全指南 -- 2021年版这篇文章中,我介绍了目前WordPress网站上线前的一些安全防护策略。由于篇幅显示,有一些防护技术没有详细介绍。因此,这篇文章将主要介绍其中三个防护策略:

    -如何在特定的WordPress目录中禁止PHP的执行?
    -如何更改WordPress数据库前缀,提高安全性?
    -如何保护你的WordPress管理员(wp-admin)目录?

    1. 如何在特定的WordPress目录中禁止PHP的执行?

    默认情况下,WordPress使某些目录是可以写入的,这样我们网站上的其他授权用户就可以轻松地将主题、插件、图片和视频上传到网站。

    然而这个功能很可能会被他人滥用,比如黑客可以利用它上传后门访问文件或恶意软件到您的网站。

    这些恶意文件通常被伪装成WordPress的核心文件。它们大多是用PHP编写的,可以在后台运行,以盗取或者破坏我们的网站。

    因此,我们需要在某些目录中禁止执行PHP文件。那让我们来看看如何做到这点吧。

    大多数WordPress网站的根目录下都有一个.htaccess文件。这是一个强大的配置文件,用于密码保护管理区,禁止目录浏览,生成SEO友好的URL结构等。

    默认情况下,.htaccess文件位于我们的WordPress网站的根目录下,但我们也可以在WordPress内部目录中创建和使用它。

    为了保护您的网站免受黑客攻击,我们需要创建一个.htaccess文件,并将其上传到您网站的/wp-includes/和/wp-content/uploads/目录中。

    我们需要用记事本或者任何IDE创建一个新文件,添加下列代码,并保存文件且命名为.htaccess即可。

    <Files *.php>
    deny from all
    </Files>
    

    然后我们可以将这个.htaccess文件上传到服务器网站/wp-includes/和/wp-content/uploads/目录中即可。

    2. 如何更改WordPress数据库前缀,提高安全性?

    WordPress数据库存储着网站的所有信息,因此它是黑客最喜欢的目标。垃圾邮件和黑客都会运行自动代码进行SQL注入。很多人在安装WordPress的时候忘记了更改数据库的前缀。这使得黑客更容易通过针对默认的前缀wp_来策划大规模攻击。保护数据库最聪明的方法就是更改数据库前缀,而且很容易做到。但要为您建立的网站正确地更改WordPress数据库前缀,而不至于把它完全搞乱,这需要几个步骤。

    在修改数据库前缀之前,请一定要先备份我们的数据库。

    打开位于WordPress根目录下的wp-config.php文件。把表前缀从wp_改成像这样的wp_a123456_。

       $table_prefix  = 'wp_a123456_';
    

    然后,我们需要进入网站数据库,修改数据库表名。执行如下SQL。

    RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
    RENAME table `wp_comments` TO `wp_a123456_comments`;
    RENAME table `wp_links` TO `wp_a123456_links`;
    RENAME table `wp_options` TO `wp_a123456_options`;
    RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
    RENAME table `wp_posts` TO `wp_a123456_posts`;
    RENAME table `wp_terms` TO `wp_a123456_terms`;
    RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
    RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
    RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
    RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
    RENAME table `wp_users` TO `wp_a123456_users`;
    

    最后,我们需要搜索options表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。

    SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%';
    

    同样,我们还需搜索usermeta表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。

    SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%';
    

    到这里,我们的替换前缀工作就完成了。

    3. 如何保护你的WordPress管理员(wp-admin)目录?

    当你看到标题的时候,你可能会想,wp-admin目录不是已经有密码保护了吗。但为了增加额外的安全层,大量WordPress的网站往往会增加额外的一层认证。

    3.1 cPanel方法

    如果我们的WordPress网站使用cPanel,我们可以进行如下操作。

    登录我们的cPanel,单击 "密码保护目录"图标。

    WordPress"密码保护目录"图标

    点击后,会弹出一个窗口,询问目录位置。点击web根目录即可。一旦你在那里,导航到你的WordPress所在的文件夹。然后点击/wp-admin/文件夹。你会看到这样的界面。

    安全设置

    只需勾选密码保护目录的方框。然后为该目录创建一个用户。现在,当你尝试访问你的wp-admin目录时,你应该会看到一个像这样的认证要求框。

    认证要求框

    3.2. 手动方法

    如果我们网站没有使用cPanel,我们可以手动创建这个功能。

    首先创建一个.htpasswds文件。你可以通过这个生成器轻松完成。把这个文件上传到你的/public_html/目录外。一个好的路径是

    home/user/.htpasswds/public_html/wp-admin/passwd/。

    然后,创建一个.htaccess文件并上传到/wp-admin/目录下。然后在其中添加以下代码。

    AuthName "Admins Only"
    AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
    AuthGroupFile /dev/null
    AuthType basic
    require user putyourusernamehere
    

    最后,不要忘记替换你的用户名和密码。

    3.3. 修复404 error或Too many redirect error

    在执行以上配置后,有些网站会出现404或者too many redirect错误,这取决于服务器是如何配置的。要解决这个问题,请打开您的WordPress主文件.htaccess,并在WordPress规则开始前添加以下代码。

    ErrorDocument 401 default
    

    此外,上述操作还可能会破坏前端的Ajax功能(如果我们在前端使用了Ajax)。我们可以使用如下方法解决。

    打开位于/wp-admin/文件夹中的.htaccess文件(这不是我们上面编辑的主.htaccess文件)。

    在wp-admin .htaccess文件中,粘贴以下代码。

    <Files admin-ajax.php>
        Order allow,deny
        Allow from all
        Satisfy any 
    </Files>
    

    这样我们就可以正常使用Ajax了。

    自WordPress诞生以来,针对WordPress的攻击就一直存在。我会在今后的继续分享最新的WordPress网站安全策略和防护技术。

    --阅读更多文章,请关注我的公众号:未定义变量

    相关文章

      网友评论

        本文标题:WordPress安全指南 -- 进阶篇

        本文链接:https://www.haomeiwen.com/subject/qebocltx.html