Grup 3 - Elecció versió Wordpress
Tasca
Elecció d'una versió de WordPress per al site d'higiene postural amb vulnerabilitats mínimes.
Informe
Elecció d'una versió de WordPress
Hem escollit la versió 5.9.2, ja que és l'última actualització més recent de seguretat per WordPress. A més les versions 5.9 corresponen a l'actual cicle llarg de manteniment.
Ens hem decidit per aquesta versió, perquè encara que és una de les últimes disponibles i això pot portar noves vulnerabilitats, és en essència una actualització de seguretat de la línia actual de suport per WordPress i, per tant, concentra totes les mesures de seguretat disponibles a data 11 de maig de 2022. Per altra banda, la imatge oficial de Docker per WordPress únicament suporta les versions de la línia 5.9, per tant, no es podrien emprar versions anteriors sense haver de crear un contenidor personalitzat, cosa que pot conduir a més vulnerabilitats.
Desplegament en local
Per tal de securitzar correctament la nostre aplicació utilitzarem variables d'entorn i Docker Secrets. Per tant primer hem de inicialitzar el nostre equip local com a Docker Swarm amb docker swarm init
per tal de poder utilitzar Docker Secrets. Per aquest desplegament en local, protegirem tant la contrasenya de la base de dades com la contraseña del usuari root
de MySQL dins el docker-compose.yml
. Crearem un fitxer de text dins al directori del docker-compose.yml
on introduirem la contrasenya desitjada.
echo "P@SSw0rD1" > mysql_db_password.txt
echo "P@SSw0rD2" > mysql_root_password.txt
Un cop dins del docker-compose.yml
, podem definir un apartat de secrets on especifiquem l'arxiu des del que es carregaran les contrasenyes mitjançant les seccions secrets
:
version: "3.9" services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password MYSQL_DATABASE: wordpress MYSQL_USER: wpadmin MYSQL_PASSWORD_FILE: /run/secrets/mysql_db_password secrets: - db_root_password - db_password wordpress: depends_on: - db image: wordpress:5.9.1 volumes: - wordpress_data:/var/www/html ports: - "8000:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wpadmin WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_db_password secrets: - db_password secrets: mysql_db_password: file: mysql_db_password.txt mysql_root_password: file: mysql_root_password.txt volumes: db_data: wordpress_data: