0

我正在使用 Spring MVC 创建一个 Web 应用程序,以在 Tomcat 7 中运行。我在登录页面上有一个 POST 请求,发送到 /account/login,我想通过 https 发送该请求。

在我的 web.xml 中,我有:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Login</web-resource-name>
        <url-pattern>/account/login</url-pattern>
    </web-resource-collection>

    <web-resource-collection>
        <web-resource-name>Login-Error</web-resource-name>
        <url-pattern>/account/login-error</url-pattern>
    </web-resource-collection>

    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

在 tomcat server.xml 我有一个 https 连接器:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true" maxThreads="150" scheme="https"
    secure="true" clientAuth="false" sslProtocol="TLS"
    keystoreFile="/path/to/my.cert" keystorePass="password" />

当我点击登录页面时,协议始终是 https,并且登录过程本身运行良好。

但是,当我使用 firefox 插件“篡改数据”来检查 POST 请求时,用户名和密码是纯文本的。我期待它们被加密 - 我错过了什么吗?

4

1 回答 1

1

我不确定这一点,但 SSL 在网络层上工作,所以从应用程序层流向 ssl 层的数据是未加密的,之后数据包是加密的。这可能是您能够以纯文本形式查看数据的原因。

于 2013-08-12T06:25:03.263 回答