【发布时间】:2018-11-20 18:18:45
【问题描述】:
我在 nodejs 上创建了一些 API,希望在同一个 nodejs 应用程序中使用。即使我已经确保跨域到我的域。 只是防止跨域,不允许API。
但是当使用邮递员时是允许的。
请帮助提供如何限制我的 nodejs api 由我的应用程序内部以角度使用,并且不应允许跨域和邮递员。
【问题讨论】:
我在 nodejs 上创建了一些 API,希望在同一个 nodejs 应用程序中使用。即使我已经确保跨域到我的域。 只是防止跨域,不允许API。
但是当使用邮递员时是允许的。
请帮助提供如何限制我的 nodejs api 由我的应用程序内部以角度使用,并且不应允许跨域和邮递员。
【问题讨论】:
跨域保护仅在浏览器中实施,以保护最终用户浏览器的安全。它们不适用于从 Postman 或 node.js 或任何其他编程工具发出的 http 请求,仅适用于浏览器。
除了您自己的网络应用程序之外,没有任何方法可以防止您的 API 被其他代理调用。这只是网络的方式。为了让您的网页能够在浏览器中使用 API,该 API 必须向公众开放。
对此类 API 提供一些保护的常用方法是要求某种用户登录才能使用 API。您自己的 Web 应用程序可以有一个登录用户,并且您的服务器可以在您的服务器满足请求之前要求 http 请求上有一个特定的登录 cookie。这也可以被 Postman 等 3rd 方工具使用,但他们必须首先获取适当的登录 cookie。
即使在他们获得登录 cookie 的情况下,为了防止滥用,您需要跟踪服务器上的使用情况,如果您检测到任何不规则模式或滥用模式(通常使用某种速率限制检测逻辑),那么您可以暂时或永久禁止该用户登录。
【讨论】: