¿Hay alguna manera de bloquear (o aprobar condicionalmente) los iFrames en el lado del cliente?

7

Dado que los iFrames se utilizan en muchas vulnerabilidades comunes , me gustaría deshabilitar condicionalmente los iFrames, excepto los sitios que lo requieren, como GMail , o < a href="https://security.stackexchange.com/a/31291/396"> MasterCard SecureCode .

También sospecho que la etiqueta <object> tiene una funcionalidad relacionada.

  • ¿Hay alguna forma de bloquear condicionalmente el uso de iFrames (y / o <object> ) en el lado del cliente, tal vez de forma similar funciona un bloqueador de elementos emergentes?
pregunta random65537 05.03.2013 - 16:08
fuente

3 respuestas

1

Normalmente esto sería difícil ya que los iFrames son parte de la especificación HTML. ¡Hooray Browser Scripting!

Una solución podría ser usar un script greasemonkey para FireFox o un script incrustado en Chrome. Aquí hay un enlace a un script de Greasemonkey que pretende hacer lo que quieres y un poco más.

enlace

Es posible que tenga que modificarlo ligeramente para obtener los resultados deseados exactos, pero esto debería hacer que comience.

Comparte y disfruta.

    
respondido por el grauwulf 05.03.2013 - 16:45
fuente
1

En algunos navegadores puede deshabilitar iframes y luego configurarlos para que se usen en las preferencias de cada sitio. Sé que la ópera proporciona esta funcionalidad.

De Quirksmode :

  

Desactivando iframes

     
  • IE9: Opciones de Internet - > Seguridad - > Nivel personalizado (para zona de Internet) - > (desplácese hacia abajo) - > Ejecutando programas y archivos en un IFRAME - >   configurado en Deshabilitar.
  •   
  • Firefox: ve a about: config - > busca "marcos" - > haga clic en browser.frames.enabled
  •   
  • Ópera: Ctrl + F12 - > Avanzado - > Contenido - > Opciones de estilo - > desmarque Habilitar marcos en línea
  •   

Además, puede crear una regla en un proxy, como privoxy , para filtrar todos los iframes y luego excluir los sitios que desea tener iframes. Creo que el comportamiento incorporado solo hace iframe-add, pero podría ajustarse. Esto te dará un bloqueo más global. Realmente solo necesitas una expresión regular para encontrar la etiqueta de apertura y eliminarla hasta que esté cerrada, puede ser en algunos casos donde se rompa la página.

Editar, parece que la ópera no desactiva los iframes. Deshabilité los iframes en el enlace de modo de moda anterior, y todavía registraba el iframe. Esto se confirma en los foros de Opera . Esperaba que la página de modo completo estuviera desactualizada.

Probablemente el mejor resultado para bloquear en el nivel de proxy antes de confiar en los scripts de usuario, las características del navegador, etc. Además, es más universal.

    
respondido por el Eric G 05.03.2013 - 21:37
fuente
0

Si simplemente no desea verse afectado por iframes que contienen enlaces para explotar kits o explotar páginas, probablemente sea mejor que utilice NoScript para Firefox o NotScripts. Hace el tipo de bloqueo condicional que desea, y puede bloquear casi todo lo que podría conducir a una explotación (Javascript, Java, Flash, Silverlight, etc.). Si se carga un iframe pero no se puede ejecutar ningún tipo de script, es completamente inofensivo.

Yo diría que esto es probablemente más seguro que solo bloquear iframes, también. Si un sitio que visita fue hackeado, no hay razón para que el atacante no pueda hacer <script src="http://evilsite.com"></script> , que contiene código que carga un JAR malicioso y luego un SWF malicioso. Los iframes no son lo único que puede cargar código arbitrario de dominios externos.

    
respondido por el Anorov 06.03.2013 - 04:27
fuente

Lea otras preguntas en las etiquetas