代码之家  ›  专栏  ›  技术社区  ›  The pyramid

如何阻止非浏览器客户端向我的服务器发送请求

  •  1
  • The pyramid  · 技术社区  · 6 年前

    我最近使用nginx在同一个vps上部署了我的网站和后端,但现在当我向邮递员请求 http://IP:port/route -我从任何一台电脑上得到服务器的响应。 我认为这不是它应该如何工作的。我将CORS选项设置为origin:vps-ip(所以只有我的域),但是我的服务器仍然接受来自邮递员的请求。是否有任何方法阻止我的后端接受这些请求,将域限制为仅我的域,即我的VPS IP?请求必须首先绕过nginx吗?

    另一个问题是保护我的网站;重要的请求和响应头显示在浏览器的“网络”选项卡中,例如“授权JWT令牌”,这是正常的还是存在一些安全风险?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Mavi Domates    6 年前

    我觉得这里对CORS有点困惑。

    Cross Origin Resource Sharing 不用于桌面客户端到服务器/或服务器到服务器的调用。从链接:

    跨源资源共享(CORS)是一种使用 告诉浏览器允许Web应用程序的附加HTTP头 在一个源(域)上运行具有访问所选内容的权限 来自不同来源服务器的资源。Web应用程序使 当跨源HTTP请求具有 源(域、协议和端口)与其自身的源不同。

    所以它是另一个服务器的Web应用程序,它的实际功能是由浏览器实现的。

    1. 这正常吗? 是的。这意味着,使用邮递员的人可以向您的服务器发出请求,您有责任确保您不受类似情况的影响。浏览器会做的是,他们会查看您允许从哪些域调用服务器,如果服务器是另一个域,试图访问资源,他们会阻止它。 设置可以访问资源的域列表是您/您的服务器的责任,但强制执行该策略是浏览器的责任。 邮递员不是一个浏览器,所以它不一定实现这个功能(也不一定要实现)。

    2. 如果您在头中显示/泄漏令牌(在不同于您已通过身份验证或登录之前的设备中),这是一个严重的安全问题。如果它发生在您已登录的设备上,并且只有在您登录之后,那么它才是预期的。这是假设您不会以任何其他方式泄漏信息,并且正确地设计/实现了信息。

    3. 你担心的事情有预防机制。而且您可能在这样的服务上,甚至没有注意到它,您的托管/云部署提供商可能与其他公司/工具有实现或协议,因此您可能已经受到保护。最好检查一下!

    这些

    是第一个出现在快速搜索中的付费服务,我相信还有更多。还有一些简单的实现可以提供一些保护: