我最近想用Apache的基本地址来保护WP站点的/wp-admin文件夹,以提供一个粗糙但有点有效的额外安全层(如果WP安装意外过时或出现漏洞,作为第二道防线)。
然而,当我这样做,我立即注意到,该网站的缓存前端页开始显示认证对话框,也!
这似乎是因为Ajax心跳包含在所有前端页面中:
var cnArgs = {"ajaxurl":"https:\/\/www.example.com\/wp-admin\/admin-ajax.php","hideEffect":"fade","onScroll":"no","onScrollOffset":"100","cookieName":"cookie_notice_accepted","cookieValue":"TRUE","cookieTime":"7862400",
"cookiePath":"\/","cookieDomain":".example.com","redirection":"","cache":"1"};和
/* <![CDATA[ */
var pvcArgsFrontend = {"mode":"js","requestURL":"https:\/\/www.example.com\/wp-admin\/admin-ajax.php","postID":"5","nonce":"e0785f90be"};
/* ]]> */我理解心跳在后端和登录用户的目的,但在公共前端使用它似乎是没有意义的(而且这显然是不必要地破坏了我保护wp-admin目录的密码。)
我能安全地注销脚本吗?还是有一个很好的理由来解释它的存在?
发布于 2018-03-05 21:05:55
不,锁定或阻止对wp-admin和/或子目录的访问是不行的。不仅你已经提到了这是一个粗糙的方法,它可能而且很可能会破坏网站,这取决于它的主题/插件。
原因是某些插件或主题依赖于admin-ajax.php或admin-post.php来完成某些任务。这就是为什么源中有额外的全局变量。
例如,pvcArgsFrontend变量属于后视计数器插件,它使用admin-ajax.php更新post的视图计数。如果你阻止wp-admin,你就知道会发生什么。
https://wordpress.stackexchange.com/questions/295844
复制相似问题