代码之家  ›  专栏  ›  技术社区  ›  Freewalker

ASP.NET MVC:返回对未安全页面上提交的https表单的未安全响应

  •  2
  • Freewalker  · 技术社区  · 16 年前

    我有一个安全表单(属性action=”https://...)在不安全的(http)页面中。其目的是安全地传输数据,同时避免由于我的页面上不安全的Google Maps元素而出现混合内容警告(“某些项目不安全”)。

    当表单发布并成功时,一切正常。但是,如果表单失败,我的用户会出现在同一个页面上,但现在整个页面都安全了(并生成混合内容警告)。

    如何接受表单的安全输入,并且在表单提交失败时仍返回相同的不安全页面?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Levi    16 年前

    在HTTP页面中呈现表单,即使表单指向HTTPS URL,也会破坏SSL的用途。如果您的表单指向HTTPS,则应仅通过HTTPS提供。类似地,如果它是通过HTTP提供的,那么它应该只指向HTTP。看见 this blog

    此外,这些“混合内容警告”错误试图防止额外的SSL误用,因为您正在通过未加密的通道访问不受您控制的资源。一旦SSL以这种方式被破坏,攻击者就有可能将自己的Javascript注入到响应中,那么页面被SSL加密的事实就毫无用处了。

    简而言之,请验证使用SSL是否是应用程序的一项严格要求,如果不是,请将其删除。现在,您的应用程序配置的安全性相当于通过HTTP提供所有服务。如果这是不可接受的,请划分您的站点,使您的站点中引用谷歌地图的部分与您的站点中处理安全交易的部分不同。