2010-08-10 10 views
5

¿Alguien sabe de algún script de escáneres de inyección que pueda detectar si su sitio web se ha visto comprometido (es decir, javascript que se ha inyectado que simplemente no debería estar allí)?Exploración de inyección de script de sitio web

+0

Usted debe hacer la comprobación antes de que algo está escrito no después. –

Respuesta

2

Es difícil: debe probar cada URL de su aplicación y comprobar si hay patrones específicos en la respuesta (y es muy difícil tener un buen algoritmo que pueda comprender qué es bueno o malo, javascript o necesita configurar este escáner, que puede ser largo y complicado).

Hay una solución de código abierto en tiempo real llamada mod security en el lado del servidor. Es un firewall de aplicaciones web: puede detectar patrones específicos en solicitudes y/o respuestas. Funciona en apache como un módulo. Esta es principalmente una solución de producción y no detecta la inyección durante el desarrollo. Además, necesita algunas experiencias para ajustarlo (lo que está bien y lo que está mal en los intercambios de datos con nuestros clientes) que puede ser complicado y no protege contra nuevos ataques o ataques más inteligentes (por ejemplo, recodificación de caracteres).

Por cierto, otra solución es usar Content Security Policy pero no está disponible en todos los navegadores (bueno, nadie en este momento, espere Firefox 4 ;-).

1

No se puede. Porque un script incorrecto siempre podrá reescribir/neutralizar su función de escáner cuando llegue al navegador.
Y su servidor ya no tiene control de lo que sucede en su página.

Hay una manera simple de proteger su página de la inyección: coloque todo el contenido no confiable utilizando un iframe apuntando a un subdominio o puerto diferente en su servidor.
Obtiene la misma política de origen que salvaguarda el iframe y evita el acceso a los recursos de la página primaria.

Entonces es posible que desee comunicarse de forma segura entre los iframes y la página principal.
Si se dirige a navegadores o móviles modernos, puede usar window.postMessage para enviar mensajes de cadena.
Para los navegadores más antiguos, hay algunos trucos here is a blog post with a solution

Esto no le protege contra este tipo de ataque, pero esto es otra cuestión se puede resolver con una ficha secreta en la página principal.

Cuestiones relacionadas