Pau escribió:
Hola a todos.
Tengo un proyecto en el que la mayor parte de la web necesita SSL. Lo
tengo configurado para que todas las URL se redirijan a https://midominio.com,
pero ahora necesito que algunas vistas no se encripten con el SSL. La
razón es que en ciertas vistas hay componentes externos al web server
que no se encriptan y el IE siempre muestra un mensaje de diciendo que
ciertos elementos podrían comprometer la seguridad. Paradógicamente
uno de esos elementos es el sello de seguridad de del certificado ssl.
La intención es dejar fuera de la encriptación esas páginas para que
no aparezca el dichoso mensaje.
¿Alguien sabe como excluir ciertas páginas del SSL? La idea es hacerlo
con los ficheros .htaccess de apache, pero no tengo claro como
hacerlo.
Saludos y gracias de antemano.
Pau.
Ya lo he solucionado. Pero es una solución mixta htaccess y Cake.
Lo primero ha sido quitar del htaccess las lineas que forzaban ssl para
todo el dominio.
#SSLOptions +StrictRequire
#SSLRequireSSL
#SSLRequire %{HTTP_HOST} eq "midominio.com"
En Cake utilizo el componente Security para requerir SSL en todas las
acciones menos en las vistas que no lo quiero:
En todos los controllers en el beforeFilter:
if (env('SERVER_NAME')!='localhost'){
$this->Security->blackHoleCallback = 'forceSSL';
//forceSSL será llamado si la URL no contiene https
$this->Security->requireSecure(); //Aqui va la lista de
acciones que requieren ssl
}
function forceSSL() {
$this->redirect('https://' . env('SERVER_NAME') . $this->here);
}
En las funciones que generan las vistas en las que no queremos SSL
debemos comprobar que no se les llama con https y si ese es el caso
cambiar a http.
function seg(){
if (env('SERVER_PORT') == 443){ //El puerto 443 es usado por SSL,
es la forma de detectar https
$this->redirect('http://' . env('SERVER_NAME') .
$this->here); //redirecionamos a la misma url pero con http
}
.....
}
Cuando se mezclan elementos cifrados y no cifrados en una misma vista,
en mi caso porque proceden de otras webs, el IE muestra un mensaje
diciendo que se compromete la seguridad , lo que no da buena imagen en
una web en la que la seguridad en las transacciones es algo fundamental.
Espero que le sirva a alguien.
Saludos.
Pau.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
cakephp...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a
cakephp-es+unsubscr...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.