Asp .net Web api如何避免浏览器的url命中?

时间:2014-10-20 12:44:40

标签: cors asp.net-web-api asp.net-web-api2

使用web api 1.对于Get apis,我可以在浏览器地址栏中输入url(servername:portno / api / Controllername / apiname /)并直接从浏览器调用api并获取json输出

这似乎是一个安全问题。如何限制此网址?

但我不能在web api中使用任何身份验证或授权,因为它是从UI端处理的(移动性)

1 个答案:

答案 0 :(得分:1)

如何保护Web API有多种方法。实际上,您不需要一些“HTML UI”来完成它们。

  • 您可以使用HTML UI,其中您的用户将使用HTTP POST表单,并将登录/密码交换为某个令牌(会话ID,OAuth单点登录令牌等)。
  • 您也可以在没有用户的情况下使用HTTP POST表单,只需从您的代码中获取。结果将是相同的,凭据被交换到一些令牌,这些令牌包含在HTTP头中的每个下一个请求中
  • 您可以通过编程方式限制从某些IP地址或服务访问您的API

无论如何,需要所有方法来实现身份验证和/或授权技术。而你在HTML UI中所看到的只是冰山一角,可以在没有用户的情况下完成。

当您需要关闭来自浏览器的HTTP请求时,只需使用浏览器代理检查HTTP标头即可。

authentication或浏览器代理HTTP标头的特殊处理程序,两者都至少需要MessageHandler。

您的网址深入了解WebAPI身份验证http://www.asp.net/web-api/overview/security