问题标签 [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 回答
1308 浏览

javascript - 每个函数一个随机数还是所有 AJAX 调用一个随机数?

我正在使用随机数,因为 WordPress 使用它们。这是一种额外的安全措施,即发送到服务器的哈希值会在几个小时内发生变化。

如果该哈希不存在,则请求无效。

我正在处理的页面有很多AJAX 调用(大约 20 个左右)。现在,我对每一个都有一个不同的唯一随机数。那有必要吗?我应该只保留一个用于所有请求的通用“AJAX”随机数吗?

0 投票
5 回答
109778 浏览

php - 如何创建和使用随机数

我正在运营一个网站,并且有一个评分系统,可以根据您玩游戏的次数为您提供积分。

它使用散列来证明 http 请求评分的完整性,因此用户无法更改任何内容,但是正如我担心可能发生的那样,有人发现他们不需要更改它,他们只需要获得高分,然后复制http请求,标头和所有。

以前我被禁止防御这种攻击,因为它被认为不太可能。但是,既然已经发生了,我可以。http请求来源于flash游戏,经过php验证,php进入数据库。

我很确定 nonces 会解决这个问题,但我不确定如何实现它们。什么是设置 nonce 系统的常见且安全的方法?

0 投票
2 回答
1844 浏览

authentication - 用于 Web 身份验证的 SHA1 散列代替 Blowfish

由于无法找到可工作的河豚的 php/javascript 实现,我现在正在考虑使用 SHA1 哈希来实现基于 Web 的身份验证,但由于缺乏对这一特定领域的了解,我不确定所选择的方法是否足够安全。

计划路线图:

  1. 用户的密码作为 MD5 哈希值存储在服务器上。
  2. 服务器发出一个公钥(当前时间的 MD5 哈希,以毫秒为单位)
  3. 客户端javascript函数将用户密码作为输入,并计算其MD5哈希
  4. 客户端然后从上面连接公钥和密码哈希,并计算结果字符串的 SHA1
  5. 客户端向服务器发送 SHA1 哈希,服务器使用公钥和用户密码 MD5 哈希执行类似的计算
  6. 服务器比较哈希值,匹配表示身份验证成功。
  7. 不匹配表示身份验证失败,服务器发布一个新的公钥,有效地使已经使用的公钥失效。

现在,有问题的部分是关于在 SHA1 之前连接两个密钥,这是否容易受到某种统计或其他攻击?

是否有任何特定顺序应该连接密钥以提高整体质量(即更高的位对加密的可靠性更重要)?

先感谢您。

0 投票
1 回答
1347 浏览

language-agnostic - Twitter 是否强制执行 oauth_timestamp?

在 OAuth 的胆量中,我发现了 field oauth_timestamp,其指定的行为显然是所有包含低于oauth_timestamp曾经收到的最高值的请求都应该被拒绝。当我试图将一些 Twitter API 请求排队等待处理时,以及可能产生的乱序处理,这个讨厌的小项目可能真的毁了我的一天。

但是,Twitter 是 Twitter,有希望:他们可能从未真正编写过代码来强制执行oauth_timestamp. 这将是可爱的,因为我强烈反对它。

那么,有没有人碰巧知道 Twitter API 是否真的强制执行oauth_timestamp's 指定的行为?

0 投票
2 回答
33169 浏览

security - 身份验证中的 nonce 用法

在基于摘要的身份验证中,随机数由服务器生成。但是在基于 OAuth 的身份验证中,nonce 是由客户端生成的。我想知道是否有人知道差异的原因?

0 投票
1 回答
1778 浏览

php - 在 Apache/PHP 中管理 Nonce

我一直在讨论关于 nonce 生成和 PHP 的各种问题,但没有找到任何关于管理 nonce 的“once”方面的细节的讨论。

这是我的情况。

我有一些 PHP 需要访问 Web 服务,而对 Web 服务的请求需要我的 PHP 生成一个随机数并对请求进行签名(即,我不是从 Web 服务请求随机数)。那部分很容易。

当可能有多个会话正在进行时,我正在努力寻找一个好的解决方案来防止重复使用随机数。

在我看来,我可以做三件事。

一种是在数据库中存储随机数/时间戳对,然后实现逻辑来检查数据库是否存在现有随机数、过期旧随机数等。这也需要一个TRANSACTIONorLOCK TABLE线程安全。呸。

二是把nonce存入APC的store中(我的情况下不能使用memcached),让TTL处理过期。在这种情况下,线程安全需要将逻辑包装在sem_acquire()/中sem_release()还是apc_add()真正的线程安全?我对此的主要关注是如果缓存已满apc_add()或实际上失败了如何处理这种情况。apc_store()

三、是用Cache_Lite代替APC。

还有其他选择吗?据我所知,OpenID 使用 Cache_Lite 管理随机数,所以我怀疑这是最好的解决方案,但我想在提交之前检查所有选项。

谢谢。

0 投票
2 回答
1236 浏览

wordpress - 如何生成 WordPress 插件安装链接

我创建了一个插件来替换我之前编写的插件并添加了一些额外的东西。我想在我的旧插件的设置页面中创建一个警报,其中包含一个下载和安装我的新插件的链接,并通知他们旧插件不再受到其开发人员的支持。目前,在我的管理面板的插件页面中,安装链接如下所示:

在我看来,在创建 URI 时至少要记住两件事:

  1. 检查这是否是多站点设置
  2. 确保我生成正确的随机数。

有谁知道如何正确地做到这一点?生成此 URI 时还有什么需要考虑的吗?

在此先感谢您的帮助。

0 投票
1 回答
1594 浏览

asp.net - 通过经过身份验证的 Web 表单保护 ASP.net 中的 Ajax 请求

我已经阅读了 Securing AJAX Requests via GUIDSecuring an ajax request 。现在让我解释一下我的场景,下面是可能有助于解释主题的代码片段。

下面是发送参数的 javascript 调用。btnCreateTitle_click 是按钮客户端的点击事件。txtTitle 是接受标题名称的文本框。验证器也在页面上创建以验证文本框。CreateTitle 是我使用 scriptmanager 调用的页面方法

函数成功显示标题已创建的咆哮消息,并显示带有加密记录 ID 的链接作为查询字符串到 url 以查看创建的标题的详细信息。

现在最迫切的问题,

  1. 这足够安全吗?我错过了什么?
  2. 我怎样才能使这个过程更安全、更快?
0 投票
1 回答
5300 浏览

php - 处理失败的随机数验证的最佳方法是什么?

我对随机数有一个模糊的理解,但有点困惑。

当 nonce 验证失败时,正确的响应是什么?

在什么情况下nonce验证会失败?真正的用户有什么风险?

0 投票
1 回答
574 浏览

ajax - 无法在 WordPress 插件中保存元框位置

我正在开发一个 WordPress 插件,它提供了一种仪表板,充满了自定义元框。我能够让打开/隐藏/关闭和拖动手柄正常工作;但是这些屏幕自定义没有保存:当我重新加载页面时,一切都进入默认配置(实际上,所有元框都打开并按照代码中的 add_meta_box 顺序排序)。

我将此随机数代码添加到我的管理页面,但没有任何变化:

我可能忘记了别的东西吗?