我有nginx在api.example.com提供python REST API。 当用户inputexample.com时,会从用户触发几个AJAX请求到api.example.com。 如果用户不在example.com上,是否可以阻止对API的请求? CORS会帮我吗? 提前致谢!
这里的目标是使API只能从主网站访问,并阻止到外部网站。
AJAX请求将有一个引用标头,它将被设置为请求来自的页面。 你可以在这个问题上看到FireBug:

你可以过滤服务器端。 然而,如果用户足够的确定,那么假冒是微不足道的。
另一个select是在最近x分钟内保持对您网站的请求的即时logging,根据每个API请求交叉引用已知IP地址列表 – 但这也是虚假的,因为他们可以每隔一段时间轮询您的网站几分钟时间在你的桌子上保持一个有效的logging。
你想解决什么问题? 你想要阻止什么types的请求?
通常,您需要检查Referer头,以确定资源链接的位置。 但是,这很容易通过向您的API发出请求的人捏造(如果这实际上是您遇到的问题)。
在允许进行API调用之前validation某人是否是人,是您需要validation码的地方。