我正在制作一个使用另一个api的api后端,例如Twitter。 (请注意,实际的api不是twitter,但我以它们为例)。
假设Twitter对可以对其api进行的呼叫数量有限制,并且超过此限制,它开始向我的信用卡收费。这就是为什么对我来说非常重要的是没有人误用我的api。
我想阻止人们查看我的前端代码并查看它所触及的端点,因为如果有恶意的人这样做,我会很快超过限制并且必须支付$$$。
我的前端代码使用get
来调用mybackend.com/twitter/api
只需在我的后端添加Access-Control-Allow-Origin
标题就足够了吗?
headers['Access-Control-Allow-Origin'] = 'myfrontend.com'
我之所以这样问是因为我注意到直接在浏览器中输入mybackend.com/twitter/api
是有效的,如果我将access-control-allow-origin
设置为特定网站,这就不是我所期望的。
我做错了吗?我如何阻止某人只是编写一个脚本来点击我的后端,因为很明显只要在浏览器的网址中输入它就可以了,尽管我有一个access-control-allow-origin
标题。
答案 0 :(得分:0)
您的问题有两种可能的解决方案。您可以尝试为API实现请求签名,以准确了解后端的源代码。您可以查看其工作原理here。
第二个选项,对我来说,一个更好地适合您的问题的方法是在您的服务器Load Balancer上设置拒绝服务方法,以防止来自同一来源的多个请求,因此,不要让那些恶意请求袭击你的后端。