我们有一个基于Web的应用程序,我们不要求最终用户登录。该应用程序使用Ajax来调用托管在同一服务器上的REST服务。除了这个应用程序,我们还要确保如果任何其他应用程序/代理程序调用REST服务,它们将被拒绝。
保护这样的REST API的最简单方法是什么?我的猜测是我们会包含某种安全令牌并通过HTTPS进行调用。但是我不清楚Ajax应用程序将如何创建/获取/加密令牌以及生命周期通常是什么样的。
如果可能,我宁愿在Spring Security或OAuth之外执行此操作。我还读到通过SSL发送用户名和密码足以进行身份验证。在这种情况下,应用程序将具有“用户名”和密码,它将随每次请求发送给REST服务。但如果客户端只是浏览器中的HTML和javascript,它将如何保密信息?
感谢。
答案 0 :(得分:0)
一般来说,这是不可能的。有人可以在你的javascript上查看源码,阅读令牌,然后随心所欲。
这里没有必要https。对于令牌,最简单的方法是在从服务器下载javascript时设置cookie,然后该cookie也将随任何AJAX请求一起传输。
这不是很安全 - 任何人都可以看到cookie是什么并使用它,但这是你能做到的最好的。