我有一个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答案 0 :(得分:1)
如果客户端获取HTTP 303 See Also
代码,它将无条件地提交GET请求。
如果客户端获得HTTP 302 Found
,则应在重定向的URL上提交相同类型的请求(POST),并进行用户确认。
这可能无法在较旧的浏览器上正常使用,因为它们会302 Found
将303 See Also
视为{{1}}。
无论如何,在非安全页面上提交表单在安全页面上提交数据是一个坏主意。
表单页面可能以您能想象的任何方式被破坏和监视,并且用户无法确定他提交的数据是他看到的数据。
实施例: 您的表单有一个“MainData”字段。 中间网络钓鱼站点可以编写JavaScript来监视输入的数据,将隐藏的“MainData”字段包含在其中,并向用户显示虚拟的“FakeIgnoreData”字段。
解决方案:将表单页面和提交页面放在同一个HTTPS服务器上。