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

Zend框架、SSL路由、FancyBox和XSS问题

  •  0
  • Sonny  · 技术社区  · 14 年前

    设置:

    • 我正在使用Zend框架
    • 我有一个控制器插件,可以根据我的应用程序设置检查路由,如果需要,可以重定向到HTTPS,如果不需要,可以重定向到标准HTTP。我的控制器插件基于 this blog entry .
    • 我的窗体“弹出”使用 Fancybox

    问题:

    如果我在启动登录时处于非SSL页面上,则表单会正确显示并执行登录过程,但调用父级以关闭FancyBox实例的javascript无法执行此操作,因为域现在不同-https与http

    在任何上下文中,都可以从页面调用登录表单和其他一些表单,因此我不确定如何解决这个问题。

    关闭FancyBox实例的javascript:

    if (window.self !== window.top) {
        // is nested
        parent.$.fancybox.close();
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Sonny    14 年前

    我解决了它,方法如下:

    1. 添加了新的SSL路由规则 allow_ssl 并在我的控制器插件中添加了对它的支持。路线 允许\u ssl 不在HTTP和HTTPS之间切换。这修复了可以从安全页面调用的弹出窗口,不管它们是否安全。
    2. 添加了一个签入我的登录进程,该进程检查原始登录请求并设置 is_ssl “请求”会话命名空间中的标志。登录成功后,我检查标志并重定向到 close-popup 通过HTTP或HTTPS执行操作。这个 关闭弹出式菜单 行动是一种具有 允许\u ssl 旗帜。