问题标签 [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.
java - 如何在 Java 中实现摘要认证?
我知道这是一个非常广泛的问题,但我不打算问你一个完整的实现(我知道有一些库会为我做这件事)我只是有一些关于它的小问题。
- nonce 值是否应该放在 http 标头中?
- 如何从客户端的 http 标头中读取 nonce?
- 如何将随机数发送回服务器?也许在一个隐藏的领域?或者浏览器会为我为每个后续请求执行此操作吗?
- 关于客户端随机数(cnonce)我应该以与任何其他字段或隐藏字段相同的方式发送它吗?
- 如何从服务器取回 cnonce?和nonce一样吗?
在我的项目中,我使用 servlet 来生成 html 页面,并且我有一个 servlet 来处理 http 登录表单。
ios - iOS - NSURLConnection - 连接到服务器并获取 Nonce
我正在编写 iOS 应用程序。有一个与一些房地产有关的服务器。我必须向服务器发送以下请求以获取 Nonce。
我正在使用带有以下代码的 ASI HTTP 进行发布:
我得到的响应是
错误:无法启动 HTTP 连接
有人能告诉我如何建立成功的连接吗?
security - 从服务器获取挑战后的 RESTFul 身份验证
我对如何向服务器提供挑战以进行身份验证感到困惑。它是一个 RESTFul 架构。从我的服务器,我返回这个:
现在在客户端上,如何向服务器提供包含用户名和密码的挑战?只需告诉我需要使用从服务器获得的值执行的过程即可。
php - CSRF 令牌和随机数中的熵
我正在使用 Zend Framework 制作一个分类广告网站(出于投资组合的目的,是的,我知道世界没有空间容纳“又一个 Craigslist 克隆”)。我正在尝试实现无需帐户即可发布/编辑/删除的功能。
为此,我觉得我需要在提交后生成一个 Nonce 并将其存储在数据库中。然后通过电子邮件将链接发送给发出 GET 删除请求的用户,如下所示:
http://www.somesite.com/post/delete/?id=123&nonce=2JDXS93JFKS8204HJTHSLDH230945HSLDF
只有用户拥有这个唯一的密钥或随机数,提交后我检查帖子 ID 下的数据库,并确保在删除之前随机数匹配。
我的问题是随机数实际上有多安全。如果我使用 Zend Framework 的Zend_Form_Element_Hash
,它会像这样创建散列:
在阅读 mt_rand() 时,一位评论者说“这个函数的熵是有限的。所以,如果你想创建随机字符串,无论字符串的长度如何,它只会产生大约 20 亿个不同的字符串。这可能是严重的安全性如果您将此类字符串用于会话标识符、密码等,则会出现问题。 "
由于应用程序中的随机数/令牌的生命周期,可能是用户选择删除帖子之前的几天或几周,我认为有足够的时间来进行潜在的黑客攻击。
我意识到mt_rand()
这是一个巨大的升级,从左侧和右侧的视觉映射像素rand()
中可以看出。但够了吗?是什么让“ 20 亿个不同的字符串”成为安全问题?rand
mt_rand
最终,我怎样才能增加 nonce/token/hash 的熵?
android - Android HttpClient Digest Authentication Authorization 标头“nc”硬编码
我们尝试在一个 HttpClient(一个会话)中向目标服务器发送多个请求。目标服务器将首先使用摘要身份验证(基于 MD5-sess)对所有请求进行身份验证。结果表明只有第一次访问成功。服务器拒绝以下访问,因为服务器将以后的访问视为重放攻击,因为“nc”值始终为“00000001”。
似乎Android HttpClient硬编码摘要授权标头将“nc”设置为“00000001”?
发送新请求时,客户端有什么方法可以增加此值?谢谢。
公共类 HttpService {
}
android - Android InApp Billing - 什么是真正的随机数?
是的,我已经阅读了@developer.android.com 的所有文档,并且我确实理解了这一切,但有一个基本例外——它是为了什么而引入的。
由于来自 Google Play 的所有订单响应都由任何人都无法访问的私钥签名,并且正在通过配对的公钥进行验证(在我的情况下是在外部服务器上,因此第三人也无法访问)所以根本(几乎)没有办法欺骗。
所有这些随机数只是确保购买的多余方式。更重要的是,文档对这种情况只字未提,当:
- 我购买了一件物品;
- 生成随机数并将其发送到 Google Play;
- 发生崩溃,所以我所有已知的随机数都丢失了;
- 让我的应用重新启动并从 Google Play 获得回调;
- ...并因未识别 nonce 而拒绝此呼叫!
在上述情况下,用户支付了一个项目并且从未得到它,这是可耻的。当然,我可以将 nonce 存储在某个文件中,并在我的应用程序返回时重新读取它,但这违反了 nonce 的所有原则。
恕我直言,有人刚刚说“嘿,验证过程太简单了,让我们随机添加一些东西,它会更酷!”。所以有人做到了。
或者,你会敞开心扉接受我错过的其他用例吗?否则,我将从我的代码中删除整个随机数部分。
ruby - ruby sinatra openid 应用程序回复“Nonce 已使用或超出范围”
我在 Ubuntu 映像上的 sinatra 上运行以下 ruby openId 示例。
输入谷歌网址(https://www.google.com/accounts/o8/id)时,我被重定向到谷歌,输入我的凭据,但我没有被授予访问权限:
Nonce 已使用或超出范围:“2012-05-09T13:50:xxxxxxxxxxxxxxx”
(顺便说一句,我正在使用“ruby”而不是“shotgun”执行 ruby 程序)。有人可以为我提供一些关于输出的含义以及补救措施的见解吗?谢谢!
ajax - check_ajax_referer() 究竟是如何工作的?
聪明的 Wordpress 人说插件开发人员应该在从页面发送回 wordpress 博客 (admin-ajax.php) 的每个 AJAX 请求中使用随机数。
这是通过 (1) 在服务器端生成一个随机数来完成的,通过
...(2) 使该 nonce 可用于发送 AJAX 请求的 Javascript 代码。例如,您可以这样做:
...然后 (3) javascript ajax 逻辑引用该全局变量。
...最后(4)在服务器端逻辑中检查接收到的随机数。
但是检查是如何真正起作用的呢?
wordpress - 我可以让我的 wordpress 随机数更快过期吗?(通过 wp_verify_nonce)
Wordpress 有一个随机数机制,插件可以将随机数发送到客户端代码中,然后在客户端与服务器通信时验证随机数。
我查看了wp_verify_nonce()
(在 wp-includes/pluggable.php 中)的源代码,如果 nonce 是 24 小时或更短时间,它会返回 true。
我是否有可能创建一个可以验证为...假设... .1 分钟前的随机数?
如何?
我认为有一种方法通过add_filter()
and nonce_life
。但我不希望无处不在的随机数短命。我只希望我的插件使用的 nonce 寿命很短。