ADD_SUBMENU_PAGE挂钩函数必须显式检查用户功能-为什么?

时间:2017-11-23 作者:Konamiman

在参考中add_submenu_page 功能我在描述中看到了以下内容(重点是我的):

此函数具有用于确定菜单中是否包含页面的功能。

The function which is hooked in to handle the output of the page must check that the user has the required capability as well.

我的问题是:为什么会这样?我理解这是出于安全原因,但我无法想象一个使用该功能但不执行额外检查的坏插件会被利用。看起来WordPress本身正在阻止钩住的函数在当前用户不具备所需功能的情况下执行(提供给add_submenu_page); 因此,会出现什么问题?

1 个回复
最合适的回答,由SO网友:J.D. 整理而成

责备使我们#12101, 其中@westi说:

我们还需要强调职能部门也应该检查能力,并要求它加强可见性。

提交,[12914], 是3.0的一部分。我以为加载函数的限制可能是后来才添加的,但显然是添加了in 1.5.

我的猜测是,也许在他写文档的时候,维斯特我不记得这一点。这就是为什么他们似乎表示提供的功能将只用于“确定菜单中是否包含页面”

此外,WordPress有一个模式,将每个管理页面的代码放在一个单独的文件中。这允许通过直接访问文件来运行代码,这意味着适当的功能检查尤为重要。

除此之外,不检查我能想到的功能也不会产生任何问题。这可能仍然是一个好主意,以防万一(如果在不同的上下文中调用函数)。例如,这将防止通过利用具有任意函数执行漏洞的其他代码来利用它。

结束

相关推荐

Contact Form Security

在Wordpress中构建我自己的联系人表单。除了典型的电子邮件etc验证和可能的验证码之外,我还需要考虑任何其他安全步骤。我没有向数据库发送任何数据。