2009-11-09 9 views
5

Estoy trabajando en una aplicación que permitiría a las personas ingresar URL arbitrarias que se incluirían en las etiquetas <a href="ARBITRARY URL"> y <img src="ARBITRARY URL" />.Cargando código ejecutable a través de <img> o <a> etiquetas?

¿Qué tipo de riesgos de seguridad estoy viendo?

La aplicación está codificada en PHP, y la única contramedida de seguridad que actualmente realizo es usar la función htmlentities() de PHP contra la URL de entrada antes de enviarla como HTML. También estoy revisando para asegurarme de que el texto de la URL comience con http:// o https://, pero no sé si eso está logrando algo, desde el punto de vista de la seguridad.

¿Qué más debería estar haciendo para garantizar la seguridad de mis usuarios finales?

Respuesta

3

Tome un vistazo a la XSS Checklist.

+0

Gracias, estoy usando el framework CodeIgniter, que tiene una función xss_clean(). Intenté aproximadamente la mitad de los ejemplos en ese sitio después de pasarlos a través de xss_clean() y reemplazó todo el texto vulnerable con la cadena "[eliminado]". – Dolph

1

Además, es posible insertar imágenes completas en URL usando en los navegadores más nuevos. Podría ser posible inyectar algo allí, sin embargo, eso requeriría un enorme agujero de seguridad en el lado del navegador y no sabría cómo desinfectar algo así.

¿Tal vez solo quiere restringir el acceso a ciertos dominios, o verificar si una imagen existe físicamente? Eso quizás ya ayude mucho.

1

CSRF:

<img src="http://example.org/accounts/123/delete" /> 
+0

Eso es increíble. – Dolph

0

Además de las excelentes respuestas hasta el momento, la hoja de trucos xss realmente no tiene en cuenta los atributos del evento como onmouseover onhover, etc. Estos son todos, por diseño, para permitir que alguien ejecute algunos javascript cuando algo sucede.

Cuestiones relacionadas