¿Cómo protegerse contra jQuery preventDefault phishing?

0

Esto me está molestando por un tiempo debido al potencial riesgo de seguridad que implica.

Básicamente por accidente, descubrí que este código es perfectamente válido y funciona sin problemas:

jQuery:

$(document).ready(function(){
    $("#phishingURL").on("click",function(e){
        e.preventDefault();

        window.location = "https://www.stackoverflow.com";
    });
});

HTML:

<a id="phishingURL" href="https://www.google.com">https://www.google.com</a>

La mayoría de los usuarios de PC normales simplemente desplazan una URL para verificar si realmente está dirigida hacia el sitio web que están esperando. En este tipo de phishing, puedes ver la url que esperas, pero aún eres redirigido a un sitio web diferente. Por supuesto, siempre puede consultar la barra de direcciones, etc. Pero como trabajo mucho con personas mayores, sé que se van a enamorar de esto. Entonces, ¿hay alguna forma de protegerse contra esto además de cambiar sus hábitos?

Editar: Técnicamente es posible usar Flash en el sitio de configuración y cambiar la barra de direcciones del navegador con SWFAddress.setValue() , lo que hace posible que la barra de direcciones aparezca como si estuviera en el sitio web correcto.

    
pregunta icecub 10.05.2015 - 03:55
fuente

2 respuestas

4

Si este código existe en un sitio web, sería uno de los dos motivos:

  1. El sitio web en sí mismo es malicioso (o ha sido comprometido por una persona maliciosa).
  2. Hay un error XSS en un sitio web, y un atacante lo ha inyectado guión. ( O un recurso externo se ha comprometido al mismo efecto.)

Ignorar cualquier compromiso de red / máquina cliente.

Aparte de eso, este código no se puede ejecutar en un sitio web que no sea él mismo. La Same Origin Policy evitaría que el código modifique (digamos) un Iframe para cambiar los enlaces de destino como tal.

Un sitio web legítimo que haga esto a propósito se incluiría en la categoría (1) OMI.

El único lugar donde este sería un problema sería dentro de un mensaje de correo electrónico que se ve a través de un sistema web cuando un usuario desea verificar los enlaces. Sin embargo, no se debe permitir que los scripts se ejecuten dentro de los mensajes de correo electrónico HTML. La mayoría de los proveedores buenos evitan que esto suceda eliminando el contenido no permitido e implementando una Política de seguridad de contenido.

  

Entonces, ¿hay alguna forma de protegerse contra esto además de cambiar sus hábitos?

Utilice un administrador de contraseñas basado en navegador . Esto solo debería permitirle completar las credenciales en una coincidencia de URL. Si un phisher te envía a otro lado, el administrador de contraseñas no te dará la opción de completar el formulario de inicio de sesión para que el usuario se dé cuenta de que algo anda mal.

  

Editar: Técnicamente es posible usar Flash en el sitio de phishing   y cambie la barra de direcciones del navegador con SWFAddress.setValue (),   haciendo que sea incluso posible hacer que la barra de direcciones aparezca como si estuviera en   El sitio web correcto.

Esto solo cambia el valor hash de la URL , que es un el cliente solo interpreta la sección de la URL. Esto no puede cambiar el dominio o la ruta en la barra de direcciones.

    
respondido por el SilverlightFox 10.05.2015 - 20:24
fuente
1

Esto no está relacionado con jQuery. Siempre (y desde Netscape 2) siempre ha sido posible navegar automáticamente al usuario a una página arbitraria, con o sin proporcionar algo que parece un enlace a otro lugar de antemano.

La IU de destino del enlace (ventana emergente o barra de estado) es una característica de conveniencia que nunca fue diseñada como un tipo de medida de seguridad. Nadie debería confiar en ello. Incluso si fuera fiable e impenable, un script podría cambiar fácilmente el destino del enlace en el momento crítico, o mover otro enlace al frente.

  

Entonces, ¿hay alguna forma de protegerse contra esto además de cambiar sus hábitos?

¿Crear una extensión de navegador que abra un cuadro de diálogo antes de cada navegación para confirmar que el usuario desea visitar la nueva dirección?

(Esto sería bastante horrible de usar, mente)

  

Técnicamente, es posible usar Flash en el propio sitio de configuración y cambiar la barra de direcciones del navegador con SWFAddress.setValue (), lo que hace posible que la barra de direcciones aparezca como si estuviera en el sitio web correcto.

No. SWFAddress escribe la parte de hash de la URL y el historial de HTML5 puede escribir la parte de la ruta, pero no puede cambiar el origen (esquema / nombre de host / puerto).

    
respondido por el bobince 10.05.2015 - 18:25
fuente

Lea otras preguntas en las etiquetas