Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: pisagatos en 13 Octubre 2010, 10:36 am



Título: Duda con Evitar Iframes en una página web
Publicado por: pisagatos en 13 Octubre 2010, 10:36 am
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
  1. <script type="text/javascript"> <!-- if(top.location!=this.location) top.location=this.location; //--> </script>
  2.  

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!!  ;-)


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: [u]nsigned en 14 Octubre 2010, 05:46 am
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


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: pisagatos en 14 Octubre 2010, 09:41 am
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
  1. $_SERVER['HTTP_REFERER']
?

Muchas gracias!!


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: pisagatos en 14 Octubre 2010, 09:49 am
[u)nsigned he probado con esto y aparentemente funciona...

Código
  1. if (!empty($_SERVER['HTTP_REFERER']))
  2. {
  3. if ($_SERVER['HTTP_REFERER'] != "www.nombredelaweb.com")
  4. {
  5. exit();
  6. }
  7. }
  8.  

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

Muchas gracias!!


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: 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 :)


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: pisagatos en 14 Octubre 2010, 15:57 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!


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: 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


Título: Re: Duda con Evitar Iframes en una página web
Publicado por: pisagatos en 15 Octubre 2010, 09:49 am
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...

Código:
Header always append X-Frame-Options SAMEORIGIN

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