1

我在 Tomcat 9 容器(Debian 10.8)上有一个 JEE 服务。在它前面有一个 Apache Web 服务器 + mod_proxy_ajp。

在我的 VH 中,我没有针对 /manager/html 上下文的任何 ProxyPass 规则,但是如果在 Web 客户端上我重写我的 URL 添加 /..;/manager/html(例如:https ://www.example.org/site/ ..;/manager/html ) Tomcat 管理器要求提供凭据。

有什么技巧可以避免吗?也许使用modsecurity?谢谢。

4

2 回答 2

0

由于路径参数仅在 Tomcat 中用于会话跟踪(作为 cookie 的替代方案),因此您可以在 Apache2 中安全地从..路径段中删除它们:

RewriteEngine on
RewriteRule ^(.*)/\.\.;[^/]*(.*)$ $1/..$2 [N]

或者,您可以完全删除它们:

RewriteEngine on
RewriteRule ^(.*);[^/]*(.*)$ $1$2 [N]

并将 Tomcat 配置为仅使用 cookie 进行会话跟踪$CATALINA_BASE/conf/web.xml

    <session-config>
        ...
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>
于 2021-08-26T11:35:51.213 回答
0

我使用 mod_security 规则解决了这个问题:

SecRule REQUEST_URI "@rx ..;/" "phase:1,severity:'CRITICAL',deny,id:129"

有用。

于 2021-08-26T10:06:45.983 回答