这个问题没有明确的答案,但我还是想分享我的2美分。
实际上,许多插件都会写入中的自定义文件夹/wp含量/。只需检查一个客户端站点,我就会看到其中有6个自定义文件夹(例如来自安全、备份、缓存插件等)。
一些主题和插件甚至可能期望它们能够在自己的文件夹中写入(在/wp-content/themes/foo/或/wp-content/plugins/bar/中),因此限制了对中文件的访问/wp含量通常会导致问题。
根据项目的不同,我通常会混合执行以下操作:
具有wp配置。php在webroot下一级。WordPress支持这种开箱即用的方式,我认为这是避免安全凭据意外泄漏的良好做法
/var/www/
|- wp-config.php
/var/www/html/
|- index.php
|- wp-activate.php
...
创建wp配置。php只读。这样可以避免读取文件、删除限制性元素和覆盖文件的黑客行为。
设置DISALLOW_FILE_EDIT
(不允许通过wp admin中的编辑器进行编辑)和DISALLOW_FILE_MODS
(不允许任何插件/主题/核心更新)。
定期扫描整个安装并与原始文件进行比较。(大多数安全插件都有这方面的功能,请注意这可能是资源密集型的,因此您可能希望在夜间自动完成。)
强制所有后端用户使用安全密码,如果可能,甚至可以使用2FA。(对管理员强制这样做只是一个开始,但也有“权限提升”的情况,因此对所有具有后端访问权限的用户强制这样做通常是最好的。)
使用高级设置,如Roots\' Bedrock. 如果您通过composer管理您的依赖项(核心、插件、主题),那么安装一个新站点就会容易得多。基岩还可以更好地将核心文件与自定义文件分开,所以您可以使用更严格的文件访问。
将相关服务内部化。E、 g.您的DB和Redis不需要公开,但只能由WP自己访问。