gpt4 book ai didi

node.js - 如何防止非浏览器客户端向我的服务器发送请求

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:26 25 4
gpt4 key购买 nike

我最近使用 nginx 在同一个 vps 上部署了我的网站和后端,但现在当我使用 PostMan 向 http://IP:port/route 发出请求时- 我从任何 PC 上收到服务器的响应。我认为这不是它应该如何工作的。我将 CORS 选项设置为 origin : vps-IP (因此只有我的域),但我的服务器仍然接受来自 PostMan 的请求。有什么方法可以阻止我的后端接受这些请求,将域限制为仅限我的域(又名我的 vps ip)?请求必须先绕过 nginx 吗?

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

最佳答案

我认为这里关于 CORS 存在一些困惑。

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

Cross-Origin Resource Sharing (CORS) is a mechanism that usesadditional HTTP headers to tell a browser to let a web applicationrunning at one origin (domain) have permission to access selectedresources from a server at a different origin. A web application makesa cross-origin HTTP request when it requests a resource that has adifferent origin (domain, protocol, and port) than its own origin.

所以它是一个服务器概念的网络应用程序(即通过浏览器),它的实际功能是由浏览器实现的。

  1. 这正常吗?是的。这意味着使用 Postman 的人可以向您的服务器发出请求,您有责任确保您免受此类攻击。浏览器会做的是,它们会查看您允许从哪些域调用您的服务器,如果是不同的域尝试访问资源,它们将阻止它。 设置可以访问您的资源的域列​​表是您/您的服务器的责任,但执行该策略是浏览器的责任。Postman 不是浏览器,因此不需要此功能。 p>

  2. 如果您在 header 中显示/泄漏 token (在与您登录时或登录之前进行身份验证的设备不同的设备中),那么这是一个严重的安全问题。如果这种情况发生在您已登录的设备上并且仅在您登录后发生,那么这是正常现象。这是假设您没有以任何其他方式泄露信息并且正确设计/实现了它。

  3. 针对您所担心的问题,有预防机制。您可能在没有注意到的情况下使用了这样的服务,您的托管/云部署提供商可能已经实现或与其他公司/工具达成了协议(protocol),因此您可能已经受到保护。最好检查一下!

这些

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

关于node.js - 如何防止非浏览器客户端向我的服务器发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53796901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com