首页 > 解决方案 > ExpressJS: req.hostname 属性是否足以将其用作针对域白名单的安全性验证器?

问题描述

有没有其他方法可以以更强大的方式获取主机名? http://expressjs.com/en/5x/api.html#req.hostname

标签: node.jsexpress

解决方案


hostname 属性是您自己的服务器的名称。如果你在反向代理(可能是 nginx)后面运行你的 nodejs 服务器,你需要做一些额外的配置

但是,它不会告诉您有关浏览器或其他程序向您的服务器发出请求的任何有用信息。

你可能会想req.headers[referer]。当您的请求来自浏览器时,这就是发送请求的页面的 URL。但这太容易用简单的工具进行欺骗,无法用于检测攻击者。

您最好的选择在于正确的身份验证和难以猜测的会话 cookie 以验证对您服务器的请求。CORS还可以帮助提供 Web 服务。解释所有这些对于 SO 答案来说太过分了。


推荐阅读