简单的RESTauthentication策略?

我正在devise一个可以由多个客户端,networking,手机,第三方等使用的Web服务。我正在寻找REST作为一种可能的解决scheme,我正在考虑身份validation的情况。

我正在努力保持简单和高性能的事情。 为了logging,我正在使用Node.js.

我知道会议不build议可扩展性的原因。

通过https传递每个请求的用户名和密码有什么意见?

例如:

HTTP://为MyService /用户/用户名列表授权=和密码=为mypass

这种方法是否有严重的缺点? 它是否会打开安全漏洞,跨站点脚本?

一般来说,Web服务是否有更好的解决scheme?

你不应该在URL中使用明文信息(它可以在浏览器的历史logging中看到,不会被混淆,而且也可以在通常的日志模式(如apache)中使用)。

而是使用HTTP标头:

X-USER: user X-PWD: password 

优点:

  • 它符合HTTP(HTTP头被用于诸如安全性或caching控制之类的横切关注点)
  • 如果您使用SSL(如通过https)信息被encryption

如果你没有安装SSL,你应该使用nonce方法。 看看HTTP摘要来获得一些想法。 如果您不需要识别特定用户(如移动设备最终用户),则可以完全重复使用HTTP摘要 。

尽可能地重用安全设置。 想出一个定制的身份validationscheme很困难,因为存在很多安全隐患。

你需要一个随机数 。

否则,如果你使用SSL,你应该是好的。