WordPress 的 wp-config.php 文件中保存了重要的配置信息,包括 MySql 数据库用户名、密码及连接地址等信息。一旦该文件中的内容泄露,网站所有的管理权限将暴露。下文将重点介绍一下WordPress 目录权限如何设置,以确保网站不被恶意入侵。
一、wp-config.php 文件权限设置
如果 wp-config.php 文件权限设置为755,会让网站变得非常不安全。PS:755 权限的意思是:所有者、用户组、公共用户均可读、可执行,所有者可写入,如下表:
所有者 | 用户组 | 公共组 |
---|---|---|
读取√ | 读取√ | 读取√ |
写入√ | 写入× | 写入× |
执行√ | 执行√ | 执行√ |
775权限详细情况
这样的权限设置非常不安全,很容易被人获取文件中的信息。
攻击者取得 wp-config.php 文件中的 MySql 连接信息后,可轻松修改网站数据库内容。包括创建管理员权限的用户,或者直接修改默认超级管理员的密码。
二、WordPress 文件权限设置
wp-config.php 建议设置成440权限,也就是去掉公共组的读取与执行权限,另外去掉所有者的执行权限。如下示例:
所有者 | 用户组 | 公共组 |
---|---|---|
读取√ | 读取√ | 读取× |
写入× | 写入× | 写入× |
执行× | 执行× | 执行× |
440权限
440权限详细情况
这样设置之后,如果要修改该文件,需要将所有者的写入权限暂时开启,权限变成640,完成修改后再改回440权限。
除了 wp-config.php 文件之外,WordPress 其它的文件均建议设置成644,即取消所有用户的执行权限。但目录得保持755或750权限,否则会导致 WordPress 无法上传附件、插件与主题无法安装/更新,甚至网站运行出错等问题。
如果安装了服务器管理面板的,可参照以上建议在面板中设置相应的目录及文件权限。如未使用管理面板,可以参考chmod命令教程进行设置。
注意任何情况下,均不要将目录或文件设置成777权限(全开放)。
三、关闭 MySql 远程连接权限
如果 MySql 与网站属同一服务器,则强烈建议关闭远程连接权限。如果不在同一服务器,也应仅授权网站服务器IP对 MySql 的连接权限。
不熟悉 MySql指令的用户,可借助宝塔面板或phpMyAdmin等工具进行设置。