2009-04-15 10 views

Odpowiedz

6

To jest jedno rozwiązanie, na które wpadłem. I dodać następujący fragment do beforeFilter() w AppController:

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

Funkcja jest zdefiniowana jako:

function _unforceSSL() { 
    $this->redirect('http://' . $_SERVER['SERVER_NAME'] . $this->here); 
} 
3

Należy używać plików cookie, które wymaga bezpiecznego połączenia dla bezpiecznych stron, a normalne cookies dla stron niezabezpieczonych. W ten sposób, jeśli ktoś przechwyci niezabezpieczony plik cookie, nie będzie mógł przejąć żadnych poufnych informacji.

2

To, co mi się nie podoba w przypadku przekierowania, polega na tym, że użytkownik nadal korzysta z niezabezpieczonego adresu URL i dopiero po tym jest przekierowywany.

Chciałem coś zrobić w formacie HTML> Link/url poziomie gdzie w zależności od tego, co przechodzą link SSL/bez SSL zwracane jest coś podobnego z: http://cakephp.1045679.n5.nabble.com/Re-Login-through-HTTPS-on-CakePHP-td1257438.html ale również przy użyciu bezpiecznego komponent

później edytowałem, Zrobiłem coś prostszego, co właśnie wykonało moją pracę, staram się stworzyć prosty przykład (nie zapomnij zdefiniować MYAPP_SECURE_URL w config/core.php lub bootstrap.php): w aplikacji stworzyłem 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)); 
    } 
} 
Powiązane problemy