我什么时候必须使用和验证随机数?

时间:2017-09-18 作者:Trello

我正在开发一个WordPress站点,它发布了许多从jquery到PHP的ajax调用,并将数据从PHP返回到jquery。

我需要知道何时必须使用和验证nonce?

2 个回复
SO网友:Rarst

nonce应用于验证用户的意图,尤其是破坏性操作。

假设有一个链接,用户可以单击该链接删除帖子。用户可以这样做,所以当他们单击时,帖子就会被删除。

现在想象一下,其他人欺骗用户点击这个链接(看看这张猫图片!)。用户仍然可以这样做,所以从访问角度来看,他们可以这样做,并且帖子仍然会被删除。但在这种情况下,他们并不是有意删除任何内容。

Nonce通过在特定的时间跨度内将操作限制到特定的用户,为这些情况添加了一定级别的保护。如果使用nonce,则需要使用非常特定的nonce来诱骗用户采取操作。

SO网友:Jacob Peattie

您可以使用nonce来帮助验证请求是否来自您的网站生成的页面。

如果您验证AJAX请求附带的nonce,那么请求很有可能来自您的站点前端,其中wp_create_nonce() 已运行,而不是由bot、第三方应用程序或恶意脚本向管理员ajax发送请求。php文件。

注意以下消息:the documentation 然而(我的重点):

它们有助于抵御包括CSRF在内的多种类型的攻击,但无法抵御重播攻击,因为它们未被检查为一次性使用。不应依赖nonce进行身份验证或授权、访问控制。使用current\\u user\\u can()保护您的函数,always assume Nonces can be compromised.

因此,它们远不是您应该用来保护请求的唯一东西,但它们可以为某些类型的攻击提供额外的一层。

结束

相关推荐

Php及其附录文件是什么?在最小的站点中删除它们安全吗?

关于条目。php及其附录文件,据我所知:entry-content.php entry-summary.php entry-footer.php entry-meta.php 假设我创建了一个小网站,并使用页面生成器创建它,只需要这些模板和方面,仅此而已:index.php, header.php,footer.php, functions.php, search.php style.css, behavior.js page.php, single.ph