Zend Framework, проблемы с маршрутами SSL, Fancybox и XSS - PullRequest
0 голосов
/ 11 ноября 2010

Настройка:

  • Я использую Zend Framework
  • У меня есть плагин контроллера, который проверяет маршруты в соответствии с настройками моего приложения и перенаправляет на https, еслитребуется или стандартный http, если нет.Я основал свой плагин контроллера на этой записи в блоге .
  • Мои формы "всплывающие" с использованием Fancybox

Проблемы:

Если я нахожусь на странице, отличной от ssl, когда я инициирую вход в систему, форма правильно отображается и выполняет процесс входа в систему, но JavaScript, который вызывает родительский элемент для закрытия экземпляра Fancybox, не может это сделатьпотому что домены теперь разные - https vs http

Форма входа и некоторые другие также могут вызываться со страниц в любом контексте, поэтому я не уверен, как решить эту проблему.

JavaScript, закрывающий экземпляр Fancybox:

if (window.self !== window.top) {
    // is nested
    parent.$.fancybox.close();
}

1 Ответ

0 голосов
/ 11 ноября 2010

Я решил, вот как:

  1. Добавлено новое правило SSL Route, которое allow_ssl, и добавлена ​​поддержка для него в плагине моего контроллера. Маршруты, которые allow_ssl не переключаются между HTTP и HTTPS. Это исправляет всплывающие окна, которые можно вызвать с защищенной страницы, где не имеет значения, безопасны они или нет.
  2. Добавлена ​​проверка в процессе входа в систему, которая проверяет исходный запрос на вход в систему и устанавливает флаг is_ssl в пространстве имен сеанса «Запрос». После успешного входа в систему я проверяю флаг и перенаправляю на действие close-popup через HTTP или HTTPS. Действия close-popup имеют флаг allow_ssl.
...