2011-08-09 128 views
2

从javascript调用Web服务时添加认证/安全性的最佳方式是什么?
我希望我的web服务只能从我的应用程序中调用,任何人都不应该通过将web服务URL复制到浏览器来访问我的web服务。从Javascript调用Web服务

从前几个答案看来,它似乎是不可能的。
那么我应该回复我的客户,因为他不知道这个词不可能?

〜Ajinkya。

+0

盐,令牌,密码?你能解释更多关于你如何访问'服务'的信息吗? – Calum

+0

@Calumn:我正在使用我的Web服务进行YUI自动完成。我只是将我的Web服务URL提供给YUI自动完成。 – xyz

回答

1

这是不可能的。如果您允许客户端通过JavaScript访问您的Web服务,客户端将始终可以做到这一点。您只能通过使用某种约束来减少访问,例如需要与请求一起发送的令牌,以便对其进行验证。你甚至可以把它变成一次性的标记。但是这会产生新的问题(例如,如果答案丢失会发生什么情况,客户端javascript无法重新运行查询)。

+0

@nfecher:有什么我们可以通过将Web服务URL复制到浏览器来防止任何人访问服务? – xyz

+0

不,不是真的。此外:因为你允许客户访问webservice,任何这样的预防只会是[蛇油](http://en.wikipedia.org/wiki/Snake_oil_%28cryptography%29)。 – nfechner

+0

感谢您的建议。这是否意味着所有通过JAva脚本使用的Web服务都可以访问? – xyz