出于安全原因,对未登录用户使用 wordpress nonces 是不是有意义?

Posted

技术标签:

【中文标题】出于安全原因,对未登录用户使用 wordpress nonces 是不是有意义?【英文标题】:Does it make sense to use wordpress nonces for not-logged-in users for security reasons?出于安全原因,对未登录用户使用 wordpress nonces 是否有意义? 【发布时间】:2022-01-05 00:01:17 【问题描述】:

我正在阅读以下文章:https://konstantin.blog/2012/nonces-on-the-front-end-is-a-bad-idea/ 这提出了一些问题。在 cmets 中被告知:

VIP 开发人员研讨会的一位 Automatticians 告诉我,我应该始终(始终)对 ajax 请求使用安全随机数,即使对于未登录的用户和不会导致数据库或文件系统修改的请求也是如此。

我的主题在前端使用 ajax 模式登录/注册表单,其中为注册过程实施随机数验证 - 但不是为登录过程。 这真的有意义吗?

即使是 wordpress 在 wp-login.php 中也不会使用 nonces 进行登录/注册。 另一方面,Woocommerce 确实在登录/注册表格中使用随机数。 这真的很令人困惑-最佳实践是什么-wordpress-或woocommerce方式? 从安全的角度来看,在登录/注册过程中为未登录用户使用 nonce 是否有意义?

【问题讨论】:

【参考方案1】:

nonce 是一种“反跨站点请求伪造令牌”。它可以确保恶意网站无法在您的网站上创建表单或链接到会诱使用户做他们不打算做的事情的操作。

最简单的形式是一个随机的恶意网站创建一个发布到您网站的注销页面的表单。如果用户提交了该表单(或者恶意站点有 JS 这样做),那么他们就会被注销。有害?也许不会,最多是烦人。

这适用于所有操作。 nonce 可以防止这种情况发生,因为其他站点不知道要在其表单中包含什么 nonce。

如果您有某种锁定过程,恶意网站可能会通过让其他用户发布错误的凭据来锁定已知用户。

所以是的,nonce 应该用于可以从任何事情到烦人到破坏性的操作。请注意,CAPTCHA 实际上用作随机数。

【讨论】:

不幸的是,这并没有回答我的问题。当然,nonce 通常是有道理的。我想知道的是,将它们用于未登录的用户是否有意义。特别是在登录/注册表格中:是否应该使用它们,就像在 woocommerce 中所做的那样,就像 wordpress 在 wp-login.php 中所做的那样? 这取决于未登录的用户可以执行什么样的操作,以及您是否希望他们容易受到第三方的影响。您不希望其他网站能够发布到您的注册表单吗?然后在上面放一个随机数。 感谢您的回复。当然,我不希望其他网站能够发布到我的登录/注册表单。我不明白为什么 wordpress 在登录/注册和评论表单中不使用随机数。那么,他们不关心其他网站能够发布到这些表单吗? WordPress 并不是正确行事的典范。

以上是关于出于安全原因,对未登录用户使用 wordpress nonces 是不是有意义?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VueJS 限制对未登录用户的页面访问?

如何对未登录的用户隐藏 php 功能

登录到我的 wordpress 网站后,用户需要执行一些额外的安全步骤吗?

怎样确保WordPress登录是安全的

禁用某些用户角色的简码使用

CentOS让root用户可以SSH登录