Blog personal de Diego de Haller
Blog personal de Diego de Haller
security blog

Haciendo un blog más seguro – XSS

Siguiendo con la serie de «Haciendo un blog más seguro», donde ya hemos visto cómo poner un certificado SSL para usar https o como usar las reglas de contenido para indicar a nuestro servidor lo que puede y no puede ejecutar, llegamos a este otro punto: Cross-site scripting (XSS), que no es otra cosa que inyectar código en una página, código que podría acceder a otros recursos del servidor.

¿Cómo evitar XSS?

En Apache, pues editando, de nuevo, el fichero httpd.conf y poniendo esto:

Header always set X-Xss-Protection «1; mode=block»

Con esta línea activamos la protección y bloqueamos que ciertos navegadores interpreten código si se detecta XSS. Reiniciamos Apache, y en principio ya está. Si queremos ver que efectivamente todo está bien, podemos usar el modo Desarrollador de Chrome o Firefox para ver los headers. En Chrome sería con F12, seleccionar network, all y luego hacer click en una de las entradas que salen. En la pestaña headers veremos esto:

Headers

Hay alguna cosa más que poner en el httpd.conf, que no está directamente relacionado con XSS, pero que añade otra capa de seguridad:

Header always set Strict-Transport-Security «max-age=31536000» env=HTTPS
Header always set X-Frame-Options «SAMEORIGIN»
Header always set X-Content-Type-Options «nosniff»
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

Con esto hacemos, por linea, que que el navegador sólo acepte páginas en https, que si metemos el blog en un frame, sólo pueda ser desde el mismo dominio, que si subimos ficheros a tráves del blog éstos no sean analizados y así evitar ejecutarlos, y por último, que las cookies que usamos estén siempre en https.

¡Saludos!