随机数没有用吗?


11

这可能是一个菜鸟问题,但请听我说-使用Nonce来保护它免受诸如scrappers(phpcurl scrappers等)之类的攻击的意义吗?但是我的Nonce像这样在文档的头部打印出来:

/* <![CDATA[ */
var nc_ajax_getpost = {
    ...stuff...
    getpostNonce: "8a3318a44c"
};
/* ]]> */

因此,如果我要构建一个快速的抓取程序,我只会从该页面上获取现时值,然后在我的POST中使用它...使使用Nonce的整个过程变得毫无用处...

我在这里想念什么?


2
随机数无关的内容刮,就在那里你有这种想法从..?
Rarst

K,那么让我使用一个普通的例子。Nonce正在被用来防止与安全相关的攻击...攻击者仍然可以从网站上获得随机数,因为它是公开显示的... wtf?
阿德里安

1
您可能需要将其重新表述为关于随机数的更一般性的问题。评论太多,您最初关于刮刮的用语不适用。
罗斯特(Rarst)2011年

Answers:


16

随机数对于每个登录用户都是唯一的。除非您拥有他们的cookie,否则您无法刮擦已登录用户的现时值。但是,如果您拥有用户的Cookie,那么您已经窃取了他们的身份,并且可以做任何您想做的事情。

随机数旨在防止用户通过单击链接或提交表单而被欺骗去做他们本来不想做的事情。因此,他们自己(无意间)执行此操作,而不是攻击者。


2

http://en.wikipedia.org/wiki/Cryptographic_nonce

“在安全工程中,随机数是一个任意数字,仅用于签署一次加密通信。...它通常是随机的……身份验证协议,以确保旧的通信不能在重放攻击中重用。”

这个想法是停止重复数据的提交。您创建了一个个人专用的一次性唯一标识符,因此在提交数据时只能执行一次。它与浏览您的网站无关。网站抓取是做什么的。您如何区分抓取漫游器和拖网漫游器(例如Google)?


9
我必须注意(令人困惑)WordPress随机数可以多次使用。因此,它与重复提交也没有任何关系,它是关于验证特定用户对特定对象执行特定操作的意图。
罗斯特(Rarst)2011年

3
@Rarst-关于随机数重用的极好点,可悲的是,源代码和法典本身中的注释表明它是一次仅使用密钥。 codex.wordpress.org/Function_Reference/wp_create_nonce-假设这些编号不会多次验证,则在开发功能时会很糟糕。:(
马库斯·波普
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.