前言
wp-config.php 文件是 WordPress 的核心文件,很多人对 wp-config.php 文件的重视程度往往都不高,有时候甚至没有限制好权限,直接把 wp-config.php 文件给暴露了,这都是非常危险的,今天这里就来讲一讲如何通过修改 wp-config.php 来保护你的 WordPress 网站。
内容
权限
wp-config.php 文件 WP 官方的建议是给予 0644 权限即可,千万不要再高了!
安全密钥
安全密钥能够有效阻止黑客破解你的密码,一组未经加密的用户和密码,很容易被黑客破解。而如果要破解一组随机生成的,不可预测,经过加密的密码组合,例如 88a7da62429ba6ad3cb3c76a09641fc ,则可能需要好几年的时间。有事没事换一换密钥可以让之前对相关加密内容的破解工作顿时玩完。
使用 WordPress 安全密钥生成器 替换 wp-config.php 对应的位置即可。
例如:
define('AUTH_KEY', '^CV`f!!+iXn&^ 2D}e4,VR$|y(i{+y,j1n{C4gDW G8u&x!pC*K+g9A~=z#Q9G>T'); define('SECURE_AUTH_KEY', 'oWRa +w~wcWlRP! iJP?;E$6ud l%u1+`xUIo}{#w3@O{E[%^~fQ3vlAf()RMO0u'); define('LOGGED_IN_KEY', 'ND>W%IU*Fk*d#tFx&4&*]|/$Fc*~C`o%-k9SX67/Qj>&OsjHLnpWuB>CaZUBj#?='); define('NONCE_KEY', '-|hV2t_`+D+jeP3v-R@DrEF<xpd+z3GQ$!P(Uz5fs-QAun+l?UeO*`oo@fwnfsd['); define('AUTH_SALT', '1;|D7^g4Fv(:Uugelg{zM@-J/!a|[3&nf4$QIhVxs!NspR*=).0T##!--H[#:FVQ'); define('SECURE_AUTH_SALT', '#D9i+ckeVz5m, ABTGgqD-{o,0wjYeKgg>,cVsi6.kHW E([|b%VE?uj47}B)N13'); define('LOGGED_IN_SALT', 'sVowMmRla7MAB(.hf,!?i#$: 6>FyH9Wqx-Mr7cbmye15rlkf$Q|LvNVek@lLjRB'); define('NONCE_SALT', 'F#=>J5/p!!:DxIPz1t|Ukdkk93`RtI0p23){GE9_$C$WBCCWq16y)*Q)ak|8)L #');
SSL
互联网发展到现在已经很完备了,现在无论是 SSL 证书的价格还是配置 HTTPS 的成本和难度都已经直线降低了,更何况目前的 http/2 更是将 HTTPS 协议作为重心而不是 HTTP。
近年来的劫持事件也是频发,如果你不想让自己的网站莫名其妙的出现一个不是自己添加的广告、外链的话,还是加密吧!因为全站加密比较适合新站,久一点的网站改动会较大,可以先强制登入页面和后台加密。
一、全站加密(推荐)
像米饭粑这样的博客,全站 HTTPS 并没有太大的压力,而且 WordPress 对全站 HTTPS 加密也是非常友好的。推荐新的网站能上就上吧,免费证书现在也不少。
二、强制登入页面加密
在 wp-config.php 中加入下面的代码,即可实现登入页面加密。
define('FORCE_SSL_LOGIN', true);
三、强制后台加密
在 wp-config.php 中加入下面的代码,即可实现WP后台的强制加密。
define('FORCE_SSL_ADMIN', true);
数据库前缀
WordPress数据库也是所有黑客攻击的目标。通过改变WordPress数据库默认前缀, 是保护数据库一个很好的方法。
一、新安装的时候就修改(推荐)
新安装 WP 的时候会让你选择修改数据库的前缀,这时候改了就不用太麻烦导致后面还要改。
二、TSQL 修改
注:因为涉及数据库,会有不可逆的后果,建议先带套备份
首先,修改配置文件 wp-config.php 中 “wp_ ”为自定义表前缀,比如:wp_mf8_。 登录 MySQL 数据库,运行以下SQL语句,修改默认表前缀为自定义前缀:
RENAME table `wp_comments` TO `wp_mf8_comments`; RENAME table `wp_links` TO `wp_mf8_links`; RENAME table `wp_options` TO `wp_mf8_options`; RENAME table `wp_postmeta` TO `wp_mf8_postmeta`; RENAME table `wp_posts` TO `wp_mf8_posts`; RENAME table `wp_terms` TO `wp_mf8_terms`; RENAME table `wp_term_relationships` TO `wp_mf8_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_mf8_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_mf8_usermeta`; RENAME table `wp_users` TO `wp_mf8_users`;
现在需要修改选项和 usermeta 表,让一切工作。 输入以下SQL查询:
SELECT * FROM `wp_mf8_usermeta` WHERE `meta_key` LIKE '%wp_%'
禁用插件和主题编辑
很多人都喜欢在后台的外观那里直接修改一下主题的一些文件,其实如果开放这个功能是非常危险的,利用这个,攻击者就为攻击者添加恶意代码、病毒和垃圾邮件而打开后门。
进入:
define('DISALLOW_FILE_EDIT', true);
转移 wp-config.php 文件
因为 wp-config.php 默认就是在根目录的,很多人就直接会对准这个目标已经攻击,因此我们还可以让 wp-config.php 文件搬个家~
清空 wp-config,php 的内容,加入:
<?php define'ABSPATH', dirname__FILE__ ; require_onceABSPATH '../path/to/wp-config.php';
这里的 ../path/to/wp-config.php 就是转移 wp-config.php 文件的路径。