gpt4 book ai didi

java - jetty、servlet 3.0、spring主机头攻击预防

转载 作者:行者123 更新时间:2023-12-02 08:44:33 25 4
gpt4 key购买 nike

有一种已知的攻击类型,称为主机 header 攻击脚本。它基本上是更改“X-Forwarded-Host” header 以及您通过执行以下操作进行的所有调用:

String serverName = reqest.getServerName();

导致 serverName 恰好是 X-Forwarded-Host header 值。因此,所有基于 serverName 变量的操作都是不可信的。如果您将网址嵌入到您的网站中,例如:

<a href="http://<%=request.getServerName()+":"+request.getServerPort()%>">Some link</a>

您可能指的是另一个位置。

是否有另一种方法可以在存在恶意 X-Forwarded-Host header 的情况下正确检索服务器名称?

所有这些问题都可以通过仅提供相对网址而不是完整网址来克服。我现在面临的情况包括嵌入一些从 https 到 http 的完整 url,因此我不能使用相对 url。

有什么想法吗?

最佳答案

我认为您可以禁用转发功能。这可以在AbstractConnector中完成,有一个名为setForwarded的方法。

同时,如果您使用 dropwizard,这非常简单,只需编辑 yml 文件并更改 http 配置中的 useForwardedHeaders 字段即可。 (0.6.2 中)

关于java - jetty、servlet 3.0、spring主机头攻击预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039173/

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