【问题标题】:HTTP POST converting to HTTPS GET on redirect by proxy serverHTTP POST 在代理服务器重定向时转换为 HTTPS GET
【发布时间】:2013-08-09 19:08:17
【问题描述】:

我有一个具有以下配置的 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

【问题讨论】:

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


    【解决方案1】:

    如果客户端得到一个 HTTP 303 See Also 代码,它将无条件地提交一个 GET 请求。 如果客户端收到 HTTP 302 Found,它应该在重定向的 URL 上提交相同类型的请求 (POST),并得到用户确认。 这可能无法在较旧的浏览器上正常工作,这些浏览器倾向于将302 Found 视为303 See Also

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

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

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

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

    【讨论】:

    • 我的目标是将 HTTP POST 重定向到托管服务器的 SLL 端口并获取 POST 请求的响应。我的应用程序是使用 Internet Explorer 的胖客户端,因此它直接创建 POST 请求(并且不期望 GET 方法的响应)。有什么方法可以配置 Internet Explorer 在 302 重定向上不将 GET 转换为 POST?
    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2015-05-30
    • 2020-03-23
    • 2017-09-08
    • 1970-01-01
    • 2016-09-30
    • 2017-05-21
    相关资源
    最近更新 更多