HTTP POST转换为HTTPS GET由代理服务器重定向

时间:2013-08-09 19:08:17

标签: internet-explorer http ssl weblogic http-proxy

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

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

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

现在问题在于:

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

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

时将HTTP POST转换为HTTP GET

1 个答案:

答案 0 :(得分:1)

如果客户端获取HTTP 303 See Also代码,它将无条件地提交GET请求。 如果客户端获得HTTP 302 Found,则应在重定向的URL上提交相同类型的请求(POST),并进行用户确认。 这可能无法在较旧的浏览器上正常使用,因为它们会302 Found303 See Also视为{{1}}。

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

表单页面可能以您能想象的任何方式被破坏和监视,并且用户无法确定他提交的数据是他看到的数据。

实施例: 您的表单有一个“MainData”字段。 中间网络钓鱼站点可以编写JavaScript来监视输入的数据,将隐藏的“MainData”字段包含在其中,并向用户显示虚拟的“FakeIgnoreData”字段。

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