【发布时间】:2012-02-22 09:23:52
【问题描述】:
我的网站不需要登录。而用户采取的操作以调用 ASP.NET MVC 控制器操作方法结束。任何其他公司此时都可以调用这些端点并以这种方式使用我的 API。我想确保只有我网站上的用户才能访问这些 API。
我如何做到这一点?
添加说明:
假设我的网站是 consoto.com。我希望我的方法只有在最终用户在 consoto.com 上时才有效。现在,如果另一家公司或黑客建立了一个网站,比如 hackland.com,并且在他们的 javascript 中调用了我的方法,我希望它失败,因为他们的用户不在 consoto.com 上,而是在 hackLand.com 上。
如今,许多网站都提供对其核心功能的付费官方 API 访问。如果他们不实现这样的机制,其他人将可以选择调用实际站点使用的方法,而不是通过付费 API。什么会阻止 hackland.com 只使用 consoto.com 使用的方法而最终不为服务付费?
【问题讨论】:
-
“任何其他公司”是什么意思,什么 API?但您可以为您的网站设置 cookie 或会话并检查 cookie 或会话,因为您的网站是唯一可以让您完成交易的地方,但我认为您的网站不仅限于公司
-
如果您不要求客户端登录(或以某种方式验证自己的身份(即秘密令牌、授权 cookie 等),那么您如何可靠地区分“您网站上的用户”和首先是“其他公司”?
-
@minus4 我刚刚添加了一个更好的解释。谢谢!
-
@BojinLi 请在帖子中查看我的编辑。希望我消除了困惑。谢谢!
-
认为您可能有点偏执,我只在您的网站上看到 html,并且认为您的网站是 Internet 上唯一的网站,具有出色的数据输出可能有点小鬼说至少,如果这是 ajax 数据,即使您进行了身份验证,您也可以简单地使用多个工具进行保存。如果你确实有一些很棒的东西,那么也许你不应该向公众提供数据
标签: asp.net-mvc api