我想对我的API设置限制,因此只有注册用户才能在其网站上使用它。 javascript
将在其网站上使用,html
将其粘贴到HTTP_REFERER
。现在我为每个用户使用一个令牌,但它在网站上对公众可见,所以任何人都可以复制它。它会跟踪使用情况,但不会将其限制为仅限于其网站。
我的第一个想法是从服务器上的http标头获取HTTP_REFERER
变量,并确保它来自用户注册的域。这不会起作用,因为JavaScript
可以为空白或更改。
我的第二个想法是在粘贴的脚本中使用document.location
来获取OAUTH2
并将其传递回服务器。这也可以被篡改,因此它是不可靠的。
我现在正在寻找SSO
作为解决方案。除了用于{{1}}之外,我对此一无所知。看看这个JS OAUTH2 Lib:https://github.com/andreassolberg/jso
它们可以用于我需要做的事情吗?
一个要求是将脚本粘贴到HTML中。他们的网站上不应该有任何其他需要完成的配置。
他们还有什么其他解决方案?
答案 0 :(得分:3)
除了粘贴你的javascript之外,他们的网站上不应该有任何其他配置吗?
那么,OAUTH2可能不是您想要的,OAUTH将授权服务器的概念添加到您的Web API中,并且复杂性也在增加。
http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server
如果您不打算授权用户,只是确定可以从javascript使用api的域,请启用cors并添加属性以指定允许哪些来源访问资源。示例:
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
感谢。