是否可以在XMLHTTPRequest中使用Digest-Authentication?

use*_*625 8 javascript http xmlhttprequest web

我有一个简单的问题:是否可以在XMLHTTPRequest中使用Digest-Authentication?

如果答案是否定的,那么技术原因是什么?或者如果有可能 - 我该怎么做?

非常感谢...到目前为止谷歌没有好的答案: - /

编辑:

谢谢你的回答.在收到nonce后,修改标头以匹配摘要认证方案似乎是一种解决方案.

但我真正想要的是我可以改变我当前的调用:xmlhttp.open("GET",url,false,用户名,密码); 某事 像那个xmlhttp.open("GET",url,false,用户名,密码,"DIGEST");

这也是我最初的问题的一部分:为什么open方法不提供做出摘要请求的选项?

也许有js-lib可以推荐让我这样做 - 正如你想象的那样我真的不想将一个简单的xmlhttp.open更改为多个请求并首先得到一个nonce.

Mag*_*ero 9

你可以做到没问题.只需按照你想要的规范部分;)
http://tools.ietf.org/html/rfc2617
,你就可以开始编写你的认证库了
http://pajhome.org.uk/crypt/md5 /
在客户端.

预先交换用户名和密码
嘿我想验证---->服务器
这里是一个nonce/salt ---->客户端
这里是我的用户名密码时间戳和盐的md5哈希值----- >服务器
我刚刚用你的方式加密你的密码和用户名,它们是相同的----->客户端
这些是它的基础知识.

我遗漏了你需要在hashsum中包含所请求资源的URI!
当然,您对服务器的每个请求执行此操作,因为某个拦截哈希的人只能查看您请求的内容,并且无法请求其他资源.此方法不保护数据只是访问权限它.

  • 你不要只是让你更难以从md5中找出你的密码并使每次身份验证尝试都是唯一的.http://en.wikipedia.org/wiki/Cryptographic_nonce.这样,有些人无法在中间进行哈希处理,并在另一时间重新进行身份验证.实际上他们在Oauth中使用了一个nonce.我知道你认为这仍然是完全不安全的,但这种类型的身份验证的目的只是为了保留您的用户名和密码.这是非常基本的. (5认同)

Mar*_*ski 6

看看这篇文章:http://marcin-michalski.pl/2012/11/01/javascript-digest-authentication-restful-webservice-spring-security-javascript-ajax/.它解释了如何在服务器端使用SpringSecurity进行摘要式身份验证的JavaScript客户端.该代码可在github中找到:https://github.com/Arrowgroup/JSDigestAuth