我已经在nodejs上创建了一些API,并且希望在同一nodejs应用中使用。甚至我也确保跨域到我的域。 这只是防止跨域,不允许使用API。
但是使用邮递员时是允许的。
请帮助提供如何限制我的nodejs api只能由我的应用内部使用,并且不允许跨域和邮递员使用。
答案 0 :(得分:0)
跨域保护仅在浏览器中实现,以保护最终用户浏览器的安全性。它们仅适用于浏览器,不适用于通过Postman,node.js或任何其他编程工具发出的http请求。
除了您自己的Web应用程序外,无法阻止其他代理程序调用您的API。这只是网络方式。为了使您的网页能够在浏览器中使用该API,该API必须向公众开放。
在此类API上提供一些保护的通常方法是要求某种类型的用户登录才能使用该API。您自己的Web应用程序可以具有一个已登录的用户,并且您的服务器可以要求在HTTP请求上包含一定的登录cookie,然后服务器才能满足该请求。第三方工具(例如Postman)也可以使用此工具,但是他们必须首先获取适当的登录cookie。
为防止滥用,即使在这种情况下,即使它们获得登录cookie,也需要跟踪服务器上的使用情况,并且如果您检测到任何不规则模式或滥用模式(通常使用某种速率限制检测逻辑),则您需要可以暂时或永久禁止该用户登录。