问题标签 [nonce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

url - 使用 URL Nonce(使用 MD5 哈希)将两个页面强链接在一起。还有其他方法可以做到这一点吗?

因此,我正在做一个项目,其中有两个页面 page_1 和 page_2,其中 page_2 仅在引荐来源为 page_1 时才会加载。

我最终使用来自:http://fullthrottledevelopment.com/php-nonce-library 的 URL Nonce构建它:http ://chrisbrittain.com/strong_links/page_1.php

这是我的帖子解释它:http ://chrisbrittain.com/strongly-linking-pages-together-via-url-nonces/

这里的总体目标是两个页面都在网络上面向公众。第 2 页有我希望其他人看到的“秘密”数据,但我不想让那个人登录任何东西。

因此,相反,我只想通过电子邮件向他发送一个链接,该链接会将他带到“秘密页面”......除了我通过电子邮件发送链接的人之外,没有其他人可以访问该页面。

该解决方案基本上使用两个页面之间的随机数握手。nonce 作为 GET 变量传递,在第 2 页上,使用 GET 传递的 nonce 和第 1 页和第 2 页上相同的秘密字符串计算 MD5 哈希。

问题!!!(对不起,我啰嗦了这么多。)

  1. 有没有更好的行业标准方法来做到这一点?

  2. 我在这个实现中看到的唯一真正的弱点是暴力 URL 检查(我相信它可以被 fail2ban 或其他方法阻止。)....还有其他 obvi 设计缺陷吗?

  3. 我知道 MD5 哈希现在被认为是坏的,但在这个实现中我认为它是安全的,因为我的假设是在这里击败系统的唯一方法是暴力 URL 检查(如所说可以作为 DDoS 攻击停止) .

无论如何...感谢您的阅读,任何评论/批评都会很棒。

0 投票
0 回答
138 浏览

php - 生成这个的 PHP 代码

我正在尝试从 wsdl 文件中获取结果,但是它需要身份验证,并且用户名和密码的正常传递会给我一个错误:

标题应如下所示;

0 投票
2 回答
978 浏览

php - flickr oauth api 随机返回签名无效错误

我有一个 Web 应用程序,可以向他们的 flickr api 验证用户。它利用 OAuth 1.0 并且大多数时间都可以进行身份​​验证。但在随机时间,在完全随机的时间,flickr 无法识别我的签名。它在请求请求令牌时返回无效签名错误。但是下一次尝试中的相同代码将正确带回请求令牌。

我怀疑这与我生成随机数或时间戳的方式有关。否则它不应该在连续尝试中起作用,对吧?

这就是我生成随机数和时间戳值的方式:

这有什么问题吗?有没有更好的方法来生成 nonce 值?这种随机故障非常令人困惑。我想不出任何其他原因会导致无效错误,随机!


跟进

根据 Jan Gerlinger 的建议,我将 mktime() 更改为 time()。它肯定减少了发生的频率。但它仍然会在随机时间给出无效的签名错误,在更改为 time() 之后很少会出现,我可能会补充。

所以,我假设时间戳(mktime)是导致这些随机错误的问题之一。但是那里仍然有其他问题。也许在 nonce 一代?

0 投票
1 回答
607 浏览

php - 是否可以结合 CSRF 和 Nonce 令牌?

首先是一些背景。
我一直在使用 nonce 令牌以wordpress允许将操作附加到 nonce 的相同方式签署我的表单数据:

这允许我稍后检查用户是否正在编辑我授予他权限的帖子,因为我重建了随机数并检查我收到的随机数是否与我构建的相同:

到目前为止,我将此方法误解为一种反 CSRF 令牌,它为我提供了 CSRF 保护。
当我深入研究 CSRF 问题时,我发现这个解决方案并不能 100% 保护我免受 CSRF 的影响,因为:

  1. 可以使用接收到的数据在服务器中重建随机数。CSRF 不能重建。
  2. 对于窗口时间的表单,nonce 标记将是相同的。CSRF 在每个请求中都必须是唯一的。

所以,这是我的问题:

可以在一个表单中使用两个令牌来保护 CSRF 和数据签名吗?有没有办法将这两个令牌结合起来?

0 投票
1 回答
605 浏览

ajax - ajax nonce wordpress 安全性。我可以用它来保护我的 json 数据不被抓取吗?

我正在使用 ajax 构建一个 wordpress 插件,并希望保护 json 数据免受窥探和数据抓取。

我的想法...服务器端,我在表单提交中的隐藏 html 字段中发送随机数到 jquery 脚本。

该脚本通过 GET 来自 php 文件的一些 json 数据请求。

在 php 文件响应 GET 请求之前,它首先检查 nonce 是否有效,如果有效,则返回 json 数据。如果不是,则不返回任何内容/死掉/做一些很酷的事情来锁定该 IP 地址一段时间。

如果爬虫通过 get 请求直接访问数据文件,但 nonce 不正确,则不会返回任何数据。如果一个人偷看数据文件,但他们没有随机数,那么他们什么也看不到……这是正确的吗?我知道 nonce 只使用一次,所以即使他们有一个旧的 nonce,他们仍然无法查看数据,除非 wordpress 生成一个新的 nonce?

这是可能的还是我完全错过了nonce的重点?

0 投票
1 回答
1757 浏览

java - 使用 nonce 进行无状态 cookie 身份验证的最佳实践

我一直在阅读有关使用 cookie 进行身份验证的信息。这似乎具有挑战性,因为 cookie 可能会从浏览器缓存中被窃取或在 HTTP 消息中被截获。

我想到了为此使用 nonce 的想法。我喜欢它,因为有人偷了它,一旦真正的用户再次尝试访问 WebApp,他就会失去访问权限。为了继续窃取它,他必须离用户有点近。

但我无法找到合适的算法。Wordpress nonce 实现使用 user_id,它的身份验证 cookie 生成器有点复杂(我会继续阅读它,但我想要更简单的实现)。

这些是我被迫使用的约束:

  • 它不应该要求在 DB 或 HD 上编写它,因为它不值得那么复杂
  • 它不能使用 Session,它必须是无状态的,这意味着服务器不能保存任何类型的数据,所有数据(登录和随机数)必须通过 cookie 发送给客户端,并且他必须将 cookie 数据发送回
  • 可以在 cookie 中添加登录名,例如“login|nonce”,因此当我收到 cookie 时,我可以将其子串为 login 和 nonce 并验证它
  • 它必须在 PHP 和 Java Servlet 中实现!如果它使用其中任何一个的核心功能,我必须在另一个上实现该功能或找到替代品,但它们不需要可互换
  • 它是一个随机数,因此对于每个 HTTP 响应,我都会生成一个新的随机数,它只会有效一次,然后如果再次尝试使用就会变得无效
  • 如果 nonce 只能用于下一个请求,那就太好了,但我认为这需要将这个 nonce 存储在某个地方并检索它以进行比较,我仍然认为打破无状态是不值得的,所以我认为有时间限制可能就足够了(时间限制意味着使用time() / ( $nonce_life / 2 )作为随机数的参数之一,所以它只能在那个时间使用

这个想法是有一个无状态的、仅 cookie 的方式来知道谁登录了。$nonce_life 可以是 1 天,因此用户在第一天访问期间登录并保持登录状态直到一天结束。

正如我在 Wordpress 中看到的那样,实际上并没有办法知道 nonce 只使用一次,它所做的所有验证都是它是否在其生命周期内被使用。因此,如果 $nonce_life 是 1 天,则可以在该天无限使用 Wordpress 随机数。我认为这是有风险的,也许最好将 nonce 存储在 HD 文件上,打破无状态,但确保 nonce 只使用一次。我可以使用一个简单的 rand() 来创建它。

0 投票
0 回答
1344 浏览

android - 为什么要在服务器上生成 Android 应用内计费的 nonce?

http://developer.android.com/google/play/billing/billing_best_practices.html

正如最佳实践文档所建议的那样,我希望我的服务器为应用内计费执行签名验证任务。这让我想到了这个关于 nonces 的条款:

此外,如果您在服务器上执行随机数验证,请确保在服务器上生成随机数。

我知道我在购买请求中传递的随机数将作为购买数据的一部分返回以developerPayload进行额外验证。客户端使用 SecureRandom 生成唯一的随机数还不够吗?- 因为无论如何我都会将购买数据传回服务器进行验证,所以它也会存储客户端生成的随机数以过滤掉重放攻击。

为什么我必须“确保”在服务器上生成随机数?这似乎使过程复杂化,因为现在应用程序需要在任何应用程序内购买之前从服务器请求一个随机数。

我能想到它可能有用的唯一极不可能的情况是防止客户端上的 SecureRandom 生成已在服务器上使用的随机数的实例。即使这样,通过交叉检查也不容易识别这种情况orderId,无论如何它本身应该是唯一的?

0 投票
1 回答
1742 浏览

ios - 如何为 iOS 客户端生成 Nonce 令牌?

有没有办法使用用户名和共享密钥以及密码摘要在 iOS 客户端创建 Nonce 令牌。在创建对我的一个应用程序的基于 SOAP 的请求时,需要随机数。

如果您想了解更多信息或详细信息,请告诉我。

谢谢。

0 投票
0 回答
334 浏览

oauth - Is it better to store nonce/timestamp information in my database or in a session?

I'm trying to temporarily store nonce/timestamp info to prevent man-in-the-middle attacks when performing OAuth authentication. Is there any advantage to storing this info in a database over using $_SESSION? My feeling is that $_SESSION would be faster. However, I'm not sure if there's a security issue that I'm missing.

0 投票
1 回答
401 浏览

php - 在 REST 应用 DELETE 方法中实现 nonce

使用 POST GET 和 PUT 方法,我可以将 nonce 值与客户端请求数据的其余部分一起发送到服务器,但 DELETE 方法不应该携带任何参数,只是资源的名称。

我正在考虑使用 If-Match 标头。

那是对的吗?

(我知道 nonce 应该是某些身份验证方案的一部分,例如 OAuth 或 HTTP Digest 访问身份验证,但现在我不会使用完整的 REST,而是更喜欢使用会话身份验证。也许我做错了,应该重新考虑这个?)