一种为javascript调用的web服务添加访问控制的方法


A way to add access control to a webservice called by javascript?

我有一个PHP web服务,我需要添加独占访问。这我可以做md5sum或类似的,但我的问题是,我也有一个网站,从javascript调用web服务。因此,任何键,md5sum,以及我能想到的都可以在javascript中读取,并且不提供太多安全性。例如,像http://my-webservice.com?supersecretkey=omg这样的url很容易在javascript中读取和复制。

最好的方法是什么?会话吗?Oauth吗?我已经研究了一点,但我一直遇到的问题是,大多数例子都不是这样,他们可以从javascript调用。

对于这样的内容,我会使用HMAC:

http://en.wikipedia.org/wiki/HMAC

使用hmac保护javascript客户端

我认为您应该重新考虑您的架构。用javascript调用安全web服务并不是正确的方法。也许可以创建服务器资源来验证javascript调用并执行必要的数据查询,并以Json形式将其返回给javascript函数。

还请记住,并不是每个人的浏览器都启用了javascript,因此将其更改为基于服务器的调用可能会更好。