Duda con Evitar Iframes en una página web

Iniciado por pisagatos, 13 Octubre 2010, 10:36 AM

0 Miembros y 1 Visitante están viendo este tema.

pisagatos

Muy buenas chicos, ¿qué tal?

Necesitaba evitar en una página web que me la cargaran en un iframe, he buscado un poco por Google y lo he encontrado, gracias a este script es posible que no cargen el contenido de tu página web en un iframe:

Código (javascript) [Seleccionar]

<script type="text/javascript"> <!-- if(top.location!=this.location) top.location=this.location; //--> </script>


Bueno, el caso es que funciona perfectamente, pero haciendo pruebas me he dado cuenta que si el navegador tiene javascript desactivado, el script ese no funciona y sigue mostrando la web.

He probado con GMail por ejemplo y por mucho que actives o desactives javascript no te muestra la página.

Mi duda, es que no sé como evitar esto si el navegador tiene javascript desactivado.... he pensado en recoger alguna variables de PHP, como la direccion donde se ejecuta pero como está dentro de un iframe pues no sé como evitarlo.

A ver si alguien me puede echar una mano.

Muchas graciass!!  ;-)

[u]nsigned

Tu pagina es HTML puro y duro o usas PHP?

Google controla esto en el servidor verificando que la url desde la cual se hace la peticion sea propia, es decir de GMAIL. Entonces si yo quiero cargar gmail en un iframe dentro de www.lalalalalalala.com Google detecta que se esta empotrando su web en algun otro lado y 'niega' la peticion de la pagina..no se si eh sido claro  :xD

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

pisagatos

Muchas gracias por contestar!!

Sí, si te has explicado perfectamente. Te entiendo, lo que no entiendo es como puedo llegar a eso....

Uso PHP en la página.

¿ Lo que dices se podría hacer con
Código (php) [Seleccionar]
$_SERVER['HTTP_REFERER'] ?

Muchas gracias!!

pisagatos

#3
[u)nsigned he probado con esto y aparentemente funciona...

Código (php) [Seleccionar]
if (!empty($_SERVER['HTTP_REFERER']))
{
if ($_SERVER['HTTP_REFERER'] != "www.nombredelaweb.com")
{
exit();
}
}


¿Estaría bien resuelto o sería una solución chapuzera? Con eso supuestamente no podrían hacer frames e iframes no?

Muchas gracias!!

jdc

PHP tiene una función nativa para evitar que muestren la página en un frame.

Es la misma que usa este foro, trata de poner en un frame el foro y verás :)

pisagatos

Cita de: jdc en 14 Octubre 2010, 15:28 PM
PHP tiene una función nativa para evitar que muestren la página en un frame.

Es la misma que usa este foro, trata de poner en un frame el foro y verás :)

No lo sabía, gracias por tu respuesta.

jdc podrías decirme por favor, ¿de que función se trata?. H estado buscando por la documentación de PHP pero no encuentro nada...

Muchas gracias!

jdc

No me acuerdo, WHK me la enseñó una vez hace tiempo, el la debe recordar, era algo como xframes/deny-all o algo asi por sí te ayuda para buscarla.

Saludos

pisagatos

#7
Cita de: jdc en 14 Octubre 2010, 16:34 PM
No me acuerdo, WHK me la enseñó una vez hace tiempo, el la debe recordar, era algo como xframes/deny-all o algo asi por sí te ayuda para buscarla.

Saludos

Ya lo he encontrao!! Muchas gracias tio.

Hay que poner esta línea en un .htaccess y listo! Funciona con las últimas versiones de los navegadores, por ej. en IE6 no funciona pero bueno... algo es algo...

Header always append X-Frame-Options SAMEORIGIN

[Fuente] https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header