为什么我的缓存前端页面中包含了AJAX心跳?可以把它扔掉吗?

时间:2018-03-05 作者:Pekka

我最近想保护一个WP网站的/wp-admin 具有Apache基本身份验证的文件夹,以提供一个粗糙但有些有效的附加安全层(如果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"};
/* ]]> */
我理解heartbeat在后端和登录用户中的用途,但在公共前端使用它似乎没有任何意义(而且它显然不必要地干扰我的密码保护我的wp admin目录)

我可以安全地注销脚本吗?还是有一个很好的理由来解释它的存在?

1 个回复
SO网友:Johansson

不,不能锁定或阻止访问wp-admin 和/或其子目录。不仅你已经提到了这是一个粗糙的方法,它可能而且很可能会破坏网站,这取决于它的主题/插件。

原因是一些插件或主题依赖于admin-ajax.phpadmin-post.php 完成一些任务。这就是为什么在源代码中有额外的全局变量。

例如pvcArgsFrontend 变量属于Post View Counter 插件,使用admin-ajax.php 更新帖子的视图计数。如果您阻止wp-admin, 你知道会发生什么。

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。