0

我正在根据安全扫描报告对我的应用程序进行安全增强。我的应用程序是一个在wildfly 中运行的Java EE Web 应用程序。它通过 Apache 的反向代理服务器向用户公开。

我在 Wildfly 中的standalone.xml 文件中进行了以下更改,以启用严格的传输安全性和 httponly 属性。

<server name="default-server">
    <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
        <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
            <host name="default-host" alias="localhost">
                <location name="/" handler="welcome-content"/>
                <http-invoker security-realm="ApplicationRealm"/>
                <filter-ref name="x-frame-options"/>
                <filter-ref name="x-xss-protection"/>
                <filter-ref name="x-content-type-options"/>
                <filter-ref name="transport-security"/>
             </host>
</server>
<servlet-container name="default">
                <jsp-config x-powered-by="false"/>
                <session-cookie http-only="true" secure="true"/>
                <websockets/>
</servlet-container>

但是,当我转到应用程序页面并检查网络选项卡中的响应时,我看到了重复的属性。

Request Method: GET
Status Code: 200 OK
Referrer Policy: strict-origin-when-cross-origin
Connection: Keep-Alive
Content-Length: 4222
Content-Type: text/html;charset=ISO-8859-1
Date: Fri, 08 Jan 2021 02:36:52 GMT
Keep-Alive: timeout=5, max=99
Server: Apache
SET-COOKIE: JSESSIONID=BOH0IrY-e2q24ks1bbMy9bBzqeDZshm1n1O02G_f; Path=/MyApplication; HttpOnly
SET-COOKIE: JSESSIONID=BOH0IrY-e2q24ks1bbMy9bBzqeDZshm1n1O02G_f.application_uat; path=/MyApplication; secure; HttpOnly
Strict-Transport-Security: max-age=63072000; includeSubDomains
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; mode=block

此外,一方面,JSESSIONID 是安全的,另一方面是不安全的。我没有处理 Apache 服务器的配置。可能是因为 Apache 服务器的某些配置?我对此很陌生,所以感谢一些帮助来解决这个问题。

谢谢你。

4

1 回答 1

0

如果您有权访问应用程序的源代码,请检查它是否具有内部开发的自定义 cookie 处理程序。

可能像一段代码一样愚蠢,它附加一些文本而不是在某处覆盖它。

证据表明:

SET-COOKIE: JSESSIONID=BOH0IrY-e2q24ks1bbMy9bBzqeDZshm1n1O02G_f; Path=/MyApplication; HttpOnly
SET-COOKIE: JSESSIONID=BOH0IrY-e2q24ks1bbMy9bBzqeDZshm1n1O02G_f.application_uat; path=/MyApplication; secure; HttpOnl

实际上相同的行,在某处添加了额外的信息。建议一个处理程序在此过程中改变一些东西。

同样适用

Strict-Transport-Security: max-age=63072000; includeSubDomains
Strict-Transport-Security: max-age=31536000; includeSubDomains

这有点奇怪。

无论如何......看起来有些东西正在处理2个请求并修改相同的吞吐量......很糟糕。

于 2021-01-13T20:29:00.827 回答