【发布时间】:2019-09-20 05:06:25
【问题描述】:
webpack-dev-server 试图通过强制执行特定的 Host 标头值来缓解什么安全风险?
默认情况下,webpack-dev-server 只允许其Host 标头指定本地环回地址(localhost、127.0.0.1 等)的连接。所有其他主机都会收到此响应:“无效的主机标头”。但当然--allowed-hosts/allowedHosts 配置允许扩大这个限制。
这似乎完全基于Host 标头。我可以用curl设置一个自定义的Host头,请求成功:
curl -X GET -H "Host: http://0.0.0.0:9001/" http://me.internal.example.com:9001/
所以我很好奇——如果allowedHosts 不阻止来自 curl 或其他自定义用户代理的连接,它解决了什么问题?它似乎只针对使用普通浏览器的普通用户,以保护他们免受在错误主机上提供的站点的影响。但是中间人攻击可以很容易地代理连接并覆盖主机标头。
为了防止 MITM 攻击,您可以使用 https(带有浏览器信任的证书)。但在这种情况下,证书本身似乎可以缓解 MITM 攻击。
我确定我遗漏了一些东西,因此感谢您提供任何进一步的解释。
【问题讨论】:
标签: webpack webpack-dev-server websecurity