解决安全问题的理想设置是什么?


8

我知道WP对某些目录和文件具有可写性的要求。我还知道,将权限设置得太宽松会打开安全漏洞。最后,我知道(在此处插入服务器的)在Linux系统上运行的用户可能是一个因素。

除了安全性,我喜欢能够将主题和插件下载到我的博客中,并在必要时进行更新。正确的权限似乎与此首选项有点矛盾。

我已经在这里和那里收集了一些细节,但是如果有一个答案,我希望看到一个更明确的答案:偏爱安全性的首选设置是什么?应该具有什么权限,网站应该以什么用户身份运行,等等。


Answers:


10

如果您可以通过FTP访问服务器,则最安全的设置是您的主题或插件目录不可被网络服务器写入,而可以使用FTP使用WordPress更新文件。当您更新插件时,WordPress会提示您输入FTP详细信息。

FTP方法比直接文件写入要慢得多,但由于流氓脚本将无法修改文件,因此它的安全性要高得多。


5
SFTP甚至更好
Ashley G

3
FTP在内部是可以接受的,但是使我对Internet感到紧张。因为它通过纯文本发送密码。我通过SFTP / SSH传输,通过安全通道移动文件时感觉更舒服。我也禁止Web服务器用户的写权限。
JM Becker

8

正如@ Viper007Bond所指出的,就文件权限而言,通过内置的更新机制更新内核,插件和主题是非常安全的,因为它们可以使用您的实际用户凭据。为了获得最大的安全性,您需要确保已安装SSH2 PHP扩展。主机到主机的安装方法(如果可能)会有所不同,因此,如果安装方法尚不存在,则可能需要询问托管服务或进行一些Google搜索。

许多共享的托管服务将suexec在其Apache设置中使用,以便Web服务以实际用户身份运行。这消除了大多数权限问题,并有助于保护文件免受服务器上其他用户的攻击。但是,在Apache以单独用户身份运行的情况下,如果要将文件上传到WordPress,则必须在上传目录上打开权限。

在这种情况下,您可能希望wp-content/uploads目录具有0713权限(AKA rwx--x-wx)。这赋予目录所有者完全权限,如果他们的组知道完整路径,他们的组可以读取文件,而其他人(包括Web服务器)可以读取他们知道路径的文件并可以创建/写入文件。

一些缓存插件还期望有一个wp-content/cache可以写入的目录(或类似目录)。相同的权限建议将适用于此。

最后,对于漂亮的永久链接,WordPress需要能够修改.htaccess文件,除非您计划手动更新它。在这种情况下,您需要0646使用文件模式。但是,一旦您确定了永久链接结构,通常就不需要再次更改它,因此您可以关闭额外的写权限,并将其设置为0644。有时,插件或核心升级可能需要访问它,并且您可以为此暂时打开写权限,然后再次将其关闭。

所有其他文件都应具有0644权限。0711如果您极度偏执,则应该使用目录,但这可能会干扰需要从目录获取文件列表的所有插件。在这种情况下,或者如果您不太偏执,请使用0755,这将使其他人可以阅读但不能写作。

如果您在共享主机上,则这主要是一个主要问题。如果您有一台专用服务器(包括VPS),而没有其他用户具有ssh / ftp访问权限,那么您可以再放松一点。我并不是说您应该使所有内容都可公开写入,但是您可以相信系统默认值,它可能是0755目录的权限,而不是0711

如果可以选择的话,请为该站点安装SSL证书,并测试可以通过访问该站点,然后https通过将这些行添加到wp-config.php文件中,在“停止编辑”评论:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.