Ajax 保护JavaScript从不安全页面发出的REST调用

Ajax 保护JavaScript从不安全页面发出的REST调用,ajax,security,authentication,rest,Ajax,Security,Authentication,Rest,我们有一个基于web的应用程序,不需要最终用户登录。应用程序使用Ajax调用托管在同一服务器上的REST服务。除此应用程序外,我们希望确保如果任何其他应用程序/代理调用REST服务,它们都会被拒绝 保护RESTAPI的最简单方法是什么?我的猜测是,我们将包括某种安全令牌,并通过HTTPS进行呼叫。但是,我不清楚Ajax应用程序将如何创建/获取/加密令牌,以及通常的生命周期是什么样子 如果可能的话,我宁愿在SpringSecurity或OAuth之外这样做。我还读到,通过SSL发送用户名和密码就足

我们有一个基于web的应用程序,不需要最终用户登录。应用程序使用Ajax调用托管在同一服务器上的REST服务。除此应用程序外,我们希望确保如果任何其他应用程序/代理调用REST服务,它们都会被拒绝

保护RESTAPI的最简单方法是什么?我的猜测是,我们将包括某种安全令牌,并通过HTTPS进行呼叫。但是,我不清楚Ajax应用程序将如何创建/获取/加密令牌,以及通常的生命周期是什么样子

如果可能的话,我宁愿在SpringSecurity或OAuth之外这样做。我还读到,通过SSL发送用户名和密码就足以进行身份验证。在这种情况下,应用程序将有一个“用户名”和密码,它将在每次请求时将其发送到REST服务。但是,如果客户端只是浏览器中的HTML和javascript,它将如何保密这些信息呢


谢谢。

一般来说,这是不可能的。有人可以在javascript上查看源代码,读取令牌,然后做任何他们想做的事情

这里不需要https。对于令牌,可能最简单的方法是在他们从服务器下载javascript时设置cookie,然后cookie也将与任何AJAX请求一起传输


这不是真正的安全-任何人都可以看到cookie是什么并使用它,但这是您所能做的最好的事情。

给出的答案的可能重复似乎表明加密cookie(防止MITM攻击)需要SSL。我可以在头或cookie中添加安全令牌。在这种情况下,我只是不确定一个不安全的页面如何首先安全地获取令牌?我不清楚您试图保护什么,我想您也是。攻击者所需要做的就是下载javascript-https或不下载,并且他们拥有cookie。现在他们有了cookie,他们可以向REST服务发送他们想要的任何东西,而您对此无能为力。停止MITM攻击是完全不同的事情,它无法确保“如果任何其他应用程序/代理调用他们被拒绝的REST服务”-其他应用程序不需要MITM,他们可以自己直接调用该服务。谢谢。我想也许我对这个问题的措辞含糊不清。我想确定两件事:1。没有人可以仅仅从浏览器下载代码,并且能够假装调用服务,就好像它来自一个认可的支持Ajax的应用程序,并且。。。2.任何人都无法嗅探线路并在传输过程中获取身份验证信息。(因此需要SSL)目标1是不可能的。目标2是没有意义的,因为你说人们不需要登录。如果您需要保护服务,则需要在服务器端进行保护。