October 15, 2019

Qué es CSP y cómo usarlo para proteger WordPress

Como podrás suponer, las siglas CSP hacen alusión a un acrónimo muy particular y que se relaciona directamente con el internet. Dicho acrónimo, no es otro más que “Content Security Policy”, por su traducción al español “política de seguridad de contenido”, mismo que engloba una serie de parámetros, reglas y especificaciones para proteger sitios web contra ataques XSS.

Básicamente, la idea de estas especificaciones es añadir una especie de cabecera HTTP capaz de decirle al navegador qué puedes ejecutar y qué se debe bloquear, evitando así que se ejecuten scripts no autorizados o cualquier otro recurso externo o propio que ponga en peligro la plataforma.

Sabiendo qué es CSP, vale preguntarse entonces: ¿Cómo se puede usar para proteger WordPress?

Pasos para proteger WordPress con CSP

La mejor manera de proteger WordPress con CSP es colocando en el código base de tu plataforma, todas aquellas directivas que pudiesen ser de utilidad para ti y tu protección particular, siendo necesario en este caso que se conozcan todas esas directivas de CSP que se pueden utilizar con WordPress:

  • Directiva “base-uri”, capaz de restringir la URL que aparece en el elemento base de la página.
  • Directiva “child-src”, la cual te brinda la posibilidad de listar las URLs de conectores de contenido e incrustadores de contenido.
  • Directiva “connect-src”, misma que se encarga de limitar las fuentes a las cuales te puedes conectar.
  • Directiva “img-src”, con la cual podrás definir las fuentes desde las que se pueden cargar las imágenes.
  • Directiva “upgrade-insecure-requests”, misma que te brinda la posibilidad de indicar a los agentes de usuario que hagan rewrite de los conocidos esquemas URL, pudiéndolos cambiar de HTTP a HTTPS. Esta directiva es especialmente buena para aquellas webs que sean muy viejas y que necesitan redirigir muchas URLs.

Proteger WordPress con CSP

Por supuesto, existen muchas directivas más que debes conocer para utilizar con mayor facilidad, siendo necesario también que sepas cuales son los elementos que podrás introducir en las directivas anteriormente mencionadas, siendo estos los siguientes:

  • El elemento ‘none’ que como su nombre lo denota, se utiliza para que no coincida nada.
  • El elemento ‘self’ el cual te permite que coincida con la fuente actual ignorando los posibles subdominios que existan.
  • El elemento ‘insafe-eval’, el cual permite mecanismos texto-a-JavaScript.
  • El elemento ‘unsafe-inline’, mismo que permite CSS y JavaScript incrustados en fuentes externas.

Dominando lo anterior, ya resulta sencillo incorporar CSP a WordPress, pudiendo hacer lo propio si añades las reglas anteriores al archivo .htaccess, cosa que podrás hacer únicamente si tu servidor tiene activo el módulo de cabeceras.

Curiosamente, si te parece muy complicado este método para añadir CSP a WordPress, también puedes optar por implementar plugins externos que te ayudarán de forma más homogénea a la integración de ambas partes. Puedes inclinarte por los siguientes plugins de WordPress:

  1. Headit: Este plugin es excelente ya que te permite añadir tantas cabeceras HTTP como necesites, mostrando todo en una interfaz intuitiva de utilizar.
  2. WP Content Security Policy: En este caso, se trata de un plugin que te ofrece cajas de introducción de texto por tipos de contenido, de forma que puedas introducir tus directivas de forma más interesante.

Sea cual fuere el caso, páginas especializadas en WordPress como wpextremo siempre recomiendan el primer método mencionado. ¿Te animas a probarlo?