Выборочное включение SSL для определенных действий в CakePHP - PullRequest
6 голосов
/ 15 апреля 2009

Я пытаюсь включить SSL только для определенных действий на моем веб-сайте на основе CakePHP. Я делаю это, используя requireSecure () и перенаправляя на https://url в соответствующем blackHoleCallback ().

Чтобы сохранить нагрузку на сервер, я бы хотел перенаправить обратно на http://whatever_url, когда пользователь завершит действие, требующее SSL.

Как мне это сделать?

Ответы [ 3 ]

6 голосов
/ 15 апреля 2009

Так что это одно решение, с которым я столкнулся. Я добавляю следующий фрагмент к beforeFilter() в AppController:

if (!in_array($this->action, $this->Security->requireSecure) and env('HTTPS'))
    $this->_unforceSSL();

Функция определяется как:

function _unforceSSL() {
    $this->redirect('http://' . $_SERVER['SERVER_NAME'] . $this->here);
}
3 голосов
/ 08 июля 2009

Убедитесь, что вы используете cookie-файл, который требует безопасного соединения для защищенных страниц, и обычный cookie-файл для незащищенных страниц. Таким образом, если кто-то захватит небезопасный файл cookie, он не сможет перехватить любую конфиденциальную информацию.

2 голосов
/ 11 октября 2011

что мне не нравится в подходе перенаправления, так это то, что пользователь все еще переходит на незащищенный URL-адрес, и только после этого он перенаправляется.

Я хотел что-то сделать на уровне html-> link / url, где в зависимости от того, что вы передаете, возвращается ссылка ssl / non-ssl, что-то похожее с: http://cakephp.1045679.n5.nabble.com/Re-Login-through-HTTPS-on-CakePHP-td1257438.html но также с использованием защищенного компонента

позже отредактируйте , я сделал что-то более простое, просто выполнил свою работу, я пытаюсь создать простой пример (не забудьте определить MYAPP_SECURE_URL в config / core.php или bootstrap.php): В приложении я создал app_helper.php:

class AppHelper extends Helper {
    function url($url = null, $full = false) {
        if($url['action'] == 'login' && $url['controller'] == 'users') {
            return MYAPP_SECURE_URL.'/users/login';
        }
        return h(Router::url($url, $full));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...