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

通过Ajax.BeginForm构造发布到HTTPS表单

  •  1
  • Igorek  · 技术社区  · 12 年前

    是否可以从http页面发布到https表单?这是代码的示例,我不知道如何将其发布到页面的HTTPS版本。使用MVC4

    @using (Ajax.BeginForm("Register", "Home", null, new AjaxOptions { UpdateTargetId = "dlgPopup" }, new { @class = "form_main", id = "form_register"}))
    

    简单地将[RequireHttps]属性放在控制器操作上似乎不起作用。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Dave Alperovich    12 年前

    正如您已经怀疑的那样,这种请求违反了 Same origin policy IIS对XSS、伪造和大量攻击采取预防措施。

    对于子域,可以将其作为IIS中的设置进行调整。但在协议更改的情况下,您不能简单地从一个没有类似“保护”的页面向安全套接字层发出请求。

    让你的挑战更大的是,你将向一个页面发送未加密的数据 要求 受保护的数据格式。由于您的操作方法已被指示不要信任未加密的数据,因此它应该拒绝该请求。我想知道这个方法是否会被认为是匹配的,但这应该在JS调试器中得到确认( 404 错误将是不匹配的指示)。