C# 保护Web API不受跨源请求的影响

C# 保护Web API不受跨源请求的影响,c#,asp.net,iis,C#,Asp.net,Iis,我注意到最近有一些流量击中了我的一个API端点,但没有加起来。在查看IIS日志后,我确定这是一个运行在AmazonEC2上的bot,而我更喜欢的是,它不能以这种方式获取数据 我在这里有点困惑,因为我的应用程序中没有启用CORS(我甚至没有安装包)。通过PostMan调用有问题的API端点,我将返回以下标题: Cache-Control → no-cache Content-Encoding → gzip Content-Length → 357 Content-Type → applicatio

我注意到最近有一些流量击中了我的一个API端点,但没有加起来。在查看IIS日志后,我确定这是一个运行在AmazonEC2上的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
根本没有访问控制允许原始标头


由于我的前端应用程序(此时应该是API的唯一使用者)与API本身是从同一个域提供的,因此我更希望仅限制对该域的访问。我是不是漏掉了什么明显的东西?或者我是否需要安装CORS软件包并用
[DisableCors]
明确标记我的API,除非我误解了你的问题:

  • CORS用于脚本(XMLHTTPRequest)访问源
如果“bot”以其他方式向端点/API资源发出请求,例如从浏览器获取或服务器端调用,则这不是CORs问题

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

ASP.Net/web.config中的设置控制
响应
是否包括
访问控制允许源
标题(接收浏览器/客户端对其进行评估)