在之前的WordPress如何开启DEBUG功能我们有提到LOG日志,我在该指南中没有包含的内容是,如果你选择创建调试日志文件,以便将错误消息保存在文件中,而不是显示在页面上,可能会有安全漏洞问题。
为什么开启WP_DEBUG_LOG有安全隐患?
开启WP_DEBUG_LOG来保存报错数据其实很简单,就是加个小代码
define ( 'WP_DEBUG_LOG', true);
只需添加这一行,你的WordPress安装的wp-content文件夹中将自动生成一个名为debug.log的文件。这就是问题所在,文件名是都相同的:debug.log。任何能够访问该文件夹或直接读取该文件(它是纯文本)的黑客都会在那里找到你WordPress安装的敏感和相关信息,根据文件中的错误信息,攻击你的网站。
只需键入文件路径,它就会在浏览器中显示或下载到电脑上,这并不难。
如果被些“智障”弄到这文件,一定会在插件、主题、WordPress 核心文件中找到一些可利用的漏洞。
安全隐患解决方法
解决方案其实很简单,已经生成的文件名都是一致的叫debug.log,那么我们就强制使文件名不可预测就可以了,也就是说,不要使用默认生成调试日志文件:
define( 'WP_DEBUG_LOG', 'wp-content/自己取个名字.log' );
这样一来,最后开启DEBUG和LOG,并且不会有安全隐患的代码是:
/* DEBUG */
//开启 DEBUG
define ( 'WP_DEBUG', true);
//防止前端显示
define ( 'WP_DEBUG_DISPLAY', false);
@ini_set( 'display_errors', 0 );
//生成自定义名字的日志
define( 'WP_DEBUG_LOG', 'wp-content/cualquier-nombre-aleatorio.log' );