2009-04-15 15 views

Respuesta

6

Así que esta es una solución que he encontrado. Agrego el siguiente fragmento de beforeFilter() en AppController:

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

La función se define como:

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

Asegúrese de usar una cookie que requiere una conexión segura para las páginas seguras, y una galleta normal, para páginas no seguras De esta forma, si alguien captura la cookie no segura, no podrá secuestrar ninguna información sensible.

2

lo que no me gusta con el enfoque de redirigir es que el usuario sigue yendo a la URL insegura y solo después de esto se le redirige.

que quiere es regresar algo que se hace en el html-> nivel de enlace/URL en la que dependiendo de lo que pasa un enlace SSL/no SSL, algo similar a: http://cakephp.1045679.n5.nabble.com/Re-Login-through-HTTPS-on-CakePHP-td1257438.html sino también mediante el componente seguro

más tarde editar, hice algo más fácil que simplemente hice mi trabajo, intento crear un ejemplo simple (no olvides definir MYAPP_SECURE_URL en config/core.php o bootstrap.php): en la aplicación Creé 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)); 
    } 
} 
Cuestiones relacionadas