从Cross保护Web API

我注意到最近有一些流量触及我的API端点之一,这些端点没有加起来。 在查看IIS日志后,我确定它是运行在Amazon ec2上的bot,并且我倾向于使用这种方式无法获取数据。

我有点困惑,因为我的应用程序中没有启用CORS(我甚至没有安装该软件包)。 用PostMan调用有问题的API端点我得到以下头文件:

Cache-Control → no-cache
Content-Encoding → gzip
Content-Length → 357
Content-Type → application/json; charset=utf-8
Date → Wed, 14 Jan 2015 22:29:24 GMT
Expires → -1
Pragma → no-cache
Server → Microsoft-IIS/8.5
Vary → Accept-Encoding
X-AspNet-Version → 4.0.30319
X-Powered-By → ASP.NET

根本没有Access-Control-Allow-Origin标头。

由于我的前端应用程序(应该是此时API的唯一使用者)是从与API本身相同的域中提供的,因此我宁愿仅限于访问该域。 我在这里错过了很明显的东西吗 或者我需要安装CORS软件包,并用[DisableCors]明确标记我的API。


除非我误解了你的问题:

  • CORS用于脚本(XMLHTTPRequest)访问源。
  • 如果“bot”以某种其他方式向您的端点/ API资源发出请求,例如从浏览器进行GET或服务器端调用,那么它不是CORs问题。

    实际上,您的API实际上仍然会响应脚本请求,它是查找标头并确定要执行的操作的客户端(浏览器)。

    ASP.Net/web.config中的设置控制Response是否包含Access-Control-Allow-Origin标头(接收浏览器/客户端评估的标头)。

    心连心...

    链接地址: http://www.djcxy.com/p/62771.html

    上一篇: Protect Web API from Cross

    下一篇: How can Prevent Cross site request forgery via Ajax post?