Recomendaciones para evitar XSS Cross Site Scripting


En un post anterior, hablaba de tipos básicos de ataques de XSS orientados a formularios realizados en php, el artículo es el siguiente: Evitar inyección de código en formularios en php, la pregunta que normalmente aparece en la mente después de leer eso es ¿cómo lo evito? En general, y dada la importancia de estos ataques, la mejor defensa es una buena prevención. Esto aunque suene quizá a "muy buenas prácticas" es verdaderamente un hecho. La idea fundamental para evitar XSS es:
Todas las entradas proporcionadas por el usuario deben de ser validadas antes de ser utilizadas.
Pero como la idea fundamental habitualmente es olvidada, creo que un checklist es mucho más clarificante. Decir que como siempre, elchecklist contiene una serie de puntos que pueden ser comprobados, pero no pretende ser una lista completa ya que muchas cosas dependen de tecnologías web concretas, simplemente unos primeros sitios por donde empezar.
  • Bases de datos
    • Evitar que se puedan ejecutar más de una sentencia SQL en un mismo comando.
    • Utilización de Prepared Statements: ¿Y eso qué es? Básicamente el término prepared statement hace referencia a un tipo de consultas SQL que no se ejecutan concatenando cadenas de caractares.El funcionamiento es primero construir el esqueleto de la sentencia SQL y luego decir qué parametros van en cada punto.De esta forma el ejemplo anterior quedaría:
    • SELECT identificadorFROM usuariosWHERE username = ? AND password = ?
    • Ahora sólo quedaría decir qué es cada uno de los parámetros, lo importante es que en esta operación se dice de qué tipo son los mismos, por lo que por ejemplo introducir un número cuando se espera un cadena daría error. En Java por poner un ejemplo, se realizaría con:


    • preparedStatementObject.setString(1, "usuario");
      preparedStatementObject.setString(2, "contraseña");

    • Comprobar las entradas aunque hayan sido comprobadas en la parte cliente. El objetivo sería prevenir posibles problemas relacionados con buffer overflows.

  • Servidores o Aplicaciones Web
    • HTTPS no evita XSS. HTTPS es un protocolo que asegurará que la conexión entre el servidor y el cliente es segura, pero no asegura nada de los datos intercambiados.
    • Filtrado de código HTML que se permite introducir por los usuarios. Esto es especialmente problemático en componentes encargados de los comentarios en un blog o foro.
    • Se puede utilizar un pre-filtrado en código cliente (que será ejecutado en el navegador del usuario), pero sólo como medida adicional de prevención.
    • Evitar utilizar sólo parámetros que viajan con la página para autenticar un usuario. El ejemplo más típico es que aunque exista un parámetro &ID=[cadena de caracteres], eso sólo debe ser utilizado como media adicional
    • En ocasiones sería recomendable comprobar el campo REFERER de la petición HTTP para saber de dónde viene una petición, pero también hay que tener en cuenta que es un campo opcional.
    • Evitar filtrar por codificaciones, este ejemplo quizá parezca bastante absurdo, pero se dan casos donde por ejemplo se filtra por ejemplo un tag que contenga javascript, pero no se filtra jav[caracter x09]ascript y a efectos prácticos es lo mismo.
Y aquí acaba estas pequeñas recomendaciones a XSS, espero que este artículo se haya explicado bien.


Más Información

¿Qué te pareció?

Nombre

Adblock Adobe Flash AJAX Algoritmos Anuncios API Blogger Blogging Buscadores chrome web store Código Fuente CSS CSS 3 CV Dart Depurar Desarrollo Web Diseño Diseño Grafico Diseño Web Documentación Efectos Facebook Firefox Foros Fotografias Frances Bean Cobain Gadgets General Geolocalizar Google Google Analytics Google Chrome Google Imágenes Google Music Google Reader Google+ Herramientas Hotmail HTML HTML5 Imágenes Información Informática Instagram Internet Internet Explorer Internet Explorer 10 Javascript jQuery Kurt Cobain Librerías Marketing Microsoft Monetización Web Mozilla Firefox 8 MySQL Navegadores Noticias Optimización Web PageSpeed Insights PayPal Personal Photoshop PHP Plantillas Programación Programas Programas Web Proyectos Redes Sociales ScreensHots Scripts Seguridad SEO Servicios Web Sesiones Snippets SoniTube Spam Steve Jobs Templates Themes Thumbalizr Tips Trucos Tutoriales Twitter Utilidades Vectores Virus Web Widgets Windows 7 Windows 8 Windows Mobile Windows XP WordPress XSS Youtube
false
ltr
item
OnSoni: Recomendaciones para evitar XSS Cross Site Scripting
Recomendaciones para evitar XSS Cross Site Scripting
OnSoni
http://www.onsoni.com/2011/11/como-evitar-xss-cross-site-scripting.html
http://www.onsoni.com/
http://www.onsoni.com/
http://www.onsoni.com/2011/11/como-evitar-xss-cross-site-scripting.html
true
8818836675902573334
UTF-8
Not found any posts Not found any related posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU Etiqueta ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Contents Ver también Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copiar todo el codigo Seleccionar todo el Código Todo el código se ha copiado en el portapapeles Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy