2

我有一个具有以下配置的 weblogic 集群域:2 个托管服务器、1 个管理服务器和一个代理服务器。我的 webapp 部署在 2 个托管服务器中。

两个托管服务器上的 SSL 端口均已启用,并且我在 web.xml 中将用户数据约束添加为机密,以便始终使用 SSL 端口与 mywebapp 进行通信。

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

现在问题来了:

当代理服务器将请求重定向到托管服务器之一的 SSL 端口时,从 Internet Explorer 客户端到代理服务器 HTTP 端口的 HTTP POST 请求将转换为 HTTPS GET。因此,Internet Explorer 客户端永远不会收到 HTTP POST 的响应。

我的目标是即使客户端使用 HTTP 也强制执行 HTTPS。这个配置有问题吗?我想以某种方式阻止 Internet Explorer 在收到“302 Found”时将 HTTP POST 转换为 HTTP GET

4

1 回答 1

1

如果客户端得到一个 HTTP303 See Also代码,它将无条件地提交一个 GET 请求。如果客户端收到 HTTP 302 Found,它应该在重定向的 URL 上提交相同类型的请求 (POST),并得到用户确认。这在倾向于将其302 Found视为303 See Also.

无论如何,在非安全页面上使用表单在安全页面上提交数据是个坏主意。

表单页面可能以任何你能想象到的方式被破坏和窥探,用户无法确定他提交的数据就是他看到的数据。

示例:您的表单有一个“MainData”字段。中间网络钓鱼站点可以编写 JavaScript 来监视输入的数据,放置一个隐藏的“MainData”字段,其中包含它想要的任何内容,并向用户显示一个虚拟的“FakeIgnoreData”字段。

解决方案:将表单页面和提交页面放在同一个HTTPS服务器上。

于 2013-08-09T19:31:40.117 回答