浏览器扩展理念:通过Web表单提供HTTP身份验证值

浏览器扩展理念:通过Web表单提供HTTP身份验证值,http,firefox,browser,rest,Http,Firefox,Browser,Rest,我想提出一个想法。十多年来,我一直在构建web服务和web应用程序,最近更专注于提供尽可能多的RESTful服务(例如,为浏览器和API客户端使用相同的URI,但让它们修改accept:以决定是发送XML还是发送XHTML) 将web浏览器与RESTful服务结合使用的一个大问题是跟踪私有方法上的用户状态。最好的方法是客户端提供HTTP身份验证令牌,但并不是很多客户或用户喜欢浏览器中的HTTP身份验证框提示,尤其是当他们习惯于基于web表单的登录时 HTTP auth还存在其他问题,如失效支持差

我想提出一个想法。十多年来,我一直在构建web服务和web应用程序,最近更专注于提供尽可能多的RESTful服务(例如,为浏览器和API客户端使用相同的URI,但让它们修改accept:以决定是发送XML还是发送XHTML)

将web浏览器与RESTful服务结合使用的一个大问题是跟踪私有方法上的用户状态。最好的方法是客户端提供HTTP身份验证令牌,但并不是很多客户或用户喜欢浏览器中的HTTP身份验证框提示,尤其是当他们习惯于基于web表单的登录时

HTTP auth还存在其他问题,如失效支持差,但在其他方面比cookie会话要好得多

我的想法是通过执行以下操作,允许web表单提交HTTP身份验证信息:

  • 提供两种新的HTML输入表单类型,即type='username'和type='auth'
  • 当这些类型包含在表单中时,浏览器会将值与请求一起作为HTTP身份验证字段发送到表单URI,而不是作为POST或GET值
这意味着我们可以同时拥有RESTful用户身份验证,但不需要标准的浏览器登录框。我已经原型化了一个肮脏的Firefox插件,它可以做到这一点,但目前只支持基本的auth(它最终会与Digest一起工作)

我能看到的问题是,这个想法是否有效,是否已经标准化和认可,以便所有浏览器都支持它以及标准的丑陋框

有人对这个想法有任何反馈,或者知道任何类似的努力吗

我有一个即将到来的项目,这是一个内部网,我几乎想完成插件(以及客户端SSL证书支持),并将其用作测试

我找不到任何类似的东西,除了几个小项目,开发人员使用Javascript从表单中读取用户名和密码,然后将它们用作XMLHTTPRequest中的http身份验证令牌

进一步-下一步 在对此进行了一系列研究之后,我决定以1999年的模板为基础,向WHATWG提交一份关于HTML5的新提案。主要焦点应是:

  • 宁静的
  • 用户友好
  • 安全(即支持摘要,而非基本)
  • 向后兼容(即不会破坏以前的版本)
  • 完整原型
  • 征求更多反馈
如果其他任何人(感谢朱利安的指点)在评论、反馈或任何其他考虑方面有任何补充,请让我知道。一旦我把这件事排好,我会在博客上写下来

Stackoverflow可能是这些想法和建议的好场所

堆栈溢出问题
我如何才能在Stackoverflow上引起更多的注意?大多数人都使用标签浏览吗?

最近,W3C HTML工作组(请参阅)、WHAT WG和IETF(请参阅Internet草稿)对该主题重新产生了兴趣


我建议遵循IETF讨论(邮件列表:)。

非常好-谢谢。我注意到你链接到的cookie方案不是一个非常RESTful的解决方案。似乎更合适的是1999年提出的这一建议:这一建议更符合我上文所述的思路(即新的HTML元素我现在正试图找出10年前这个提议的结果。不过,我相信现在更需要它,特别是考虑到最近对基于REST的架构的强调,它与任何类型的客户端(不仅仅是浏览器)都兼容)。再次感谢。我将把关于RESTful的讨论留给Roy F.——原版的prpblem。提案主要是部署它,并使浏览器UI既有吸引力又安全。T.Broyer的提案避免了这些问题。我将修改先前的提案,并将其重新提交给WHATWG,用于HTML5。似乎每个time提交了一些类似的提案,对其进行了简要的讨论,然后什么也没有发生。我认为拥有一个原型可能会让事情进展得更好。实际上,我建议加入W3C HTML工作组(请参阅)。Digest如何比Basic over HTTPS更安全?您可以尝试使用Ajax: