La mejor práctica para SSL en CakePHP
Me gustaría implementar HTTPS para todas las páginas.
Yo uso CakePHP 2.3 con el componente "Auth".
En realidad, la única forma que encontré es agregar una "condición antes del filtro".
Pero esto está muy sucio porque tengo muchas solicitudes "no SSL" debido a Auth-Component.
AppController.php --->
class AppController extends Controller {
public function beforeFilter() {
if (env("SERVER_PORT") != "443") {
$this->Security->blackHoleCallback = 'forceSSL';
$this->Security->requireSecure();
}
}
public function forceSSL() {
$this->redirect('https://' . env('SERVER_NAME') . $this->here);
}
}
El problema aparece cuando no estoy conectado e intento acceder a mi sitio web
Entonces, ¿conoces otra manera de hacer eso?
NB: tuve que forzar la seguridad de mi cookie en core.php porque no lo estaban.
core.php --->
Configure::write('Session', array(
'defaults' => 'php',
'ini' => array(
'session.cookie_secure' => true
)));
Tenga en cuenta que también intenté forzar SSL modificando .htaccess pero todo lo que obtengo es un bucle infinito.
EDITAR:
El .htaccess predeterminado en CakePHP es
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Lo que intenté agregar:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]