-
Notifications
You must be signed in to change notification settings - Fork 0
Sécurité Web
-
Attaque DDoS (Distributed Denial of Service attack)
Perturbation des connexions entre deux machines Obstruction d'un service Bombardement d'envoi d'information -
Man-in-the-Middle
Interception des communications entre une personne A et une personne B par une personne ne faisant pas partie de l'échange. -
Injection SQL
technique visant à endommager un site internet et/obtenir des informations d'une base de données
-
HTTPS: La communication entre le client Web et le serveur Web est chiffrée. Ceci afin d’empêcher qu’un tiers non autorisé « écoute » la communication
Le serveur Web est authentifié par le fait qu’en tout début de communication, un certificat est envoyé au client Web pour attester de la crédibilité du domaine. Cette mesure contribue à combattre les tromperies résultant de faux sites Web. - Installation de firewall
- Faire des back-up réguliers
-
requêtes préparées
Les requêtes préparées permettent de se défendre contre les injectionsSQL. Lorsque nous effectuons une requête simple avec certaines librairies MySQL (ex: MySQLI), les données sont directement interprétées et envoyées à la DB. Par exemple:
mysql_query(SELECT FROM salaries WHERE prenom = . $prenom);
Malheureusement, dans ce genre de configuration, il est possible de faire d'ajouter du code compromettant l'intégrité de la DB. Par exemple:
$prenom = 'Jean';DELETE FROM salaries
mysql_query(SELECT FROM salaries WHERE prenom = . $prenom);
Pour se protéger de ça, il est possible de faire des requêtes dites préparées permettant de gérer les paramètres d'une requête indépendamment de celle-ci, rendant toutes injections impossibles.
-
Https
Nous avons mis en place des certificats pour nos sites web grâce à certbot. Les packages sont déjà présents sur les services Linux. Une fois que votre service mail est RUN, il vous suffit de rentrer dans le container et de lancer deux commandes.
sudo apt install certbot python3-certbot-apache
Vous permet d'installer les compléments nécessaires au bon fonctionnement de certbot pour vos serveurs apaches. La deuxième est seulement pour lancer certbotsudo certbot --apache
Au lancement vous devrez donner une adresse mail de contact et si vos serveurs web sont bien configurés certbot détectera vos sites et s'occupera de la génération des clés. -
Base de données
Afin de protéger notre base de données, nous avons créé deux utilisateurs. Le premier étant l'utilisateur admin ayant la totalité des droits sur la DB, le second est un utilisateur spécial n'ayant pour droit que le Select et l'insert sur la DB.
CREATE USER admin IDENTIFIED WITH mysql_native_password BY 'Password';
GRANT ALL PRIVILEGES ON dbwoody.* TO 'admin'@'%';
CREATE USER site IDENTIFIED WITH mysql_native_password BY 'PasswordSite';
GRANT SELECT ON dbwoody TO 'site '@'%';
GRANT INSERT ON dbwoody TO 'site '@'%';
Le second user sera utilisé par le site afin de limiter les possibilités d'actions.
Nous avons mis en place des requêtes préparées afin de nous protéger des injectionsSql. Comme expliqué précédemment, nous allons donc faire en sorte que
les paramètres des requêtes envoyées à la base de données soient traités indépendamment afin d'éviter l'ajout d'un éventuel drop table ou autres. Tout
cela est fait dans le code du fichier php du site cherchant l'accès à la DB.