WordPress安全指南 -- 进阶篇

终极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网站安全策略和防护技术。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容