Accueil > Sécurité web
Sécurité web
HTTPS, Content Security Policy (CSP), etc… Protéger son site, son serveur, les données qu’on héberge des attaques en tout genre.
Extraits de code (4) :
[.htaccess] Bloquer le trafic avec le référent "site.ru"
Si vous vérifiez vos logs de pages 404 générées, vous trouverez de nombreuses 404 dont le référent (referrer) serait un site mystérieux « site.ru ». Ce sont ce qu’on appelle du « referral spam ». Ce trafic n’a aucun intérêt et est même plutôt néfaste puisque ce sont des robots à la recherche des failles éventuellement présentes dans nos sites. Voici donc une façon de les bloquer.
Langage du code ci-dessous : Apache
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} site.ru [NC]
RewriteCond %{HTTP_REFERER} site.ru
RewriteRule .* – [F]
</IfModule>
Source : https://www.success.grownupgeek.com/index.php/2018/12/14/block-site-ru-referrers/
[.htaccess] Empêcher l'accès à la liste des fichiers d'un répertoire
Quand un répertoire sur le serveur web n’a pas de fichier d’index (index.html, index.php), lorsqu’on saisit l’URL de ce répertoire, s’affiche alors la liste de tous les fichiers qu’il contient. Pour éviter ça, il y a une ligne à ne jamais oublier de mettre dans son .htaccess.
Langage du code ci-dessous : Apache
# Prevent directory browsing (don't list all files in a directory without a default document)
# https://htaccessbook.com/what-is-options-all/
<IfModule mod_autoindex.c>
Options All -Indexes
</IfModule>
[.htaccess] En-têtes de sécurité
Les en-têtes de sécurité à mettre dans le fichier .htaccess à la racine de son site web. Certaines règles sont à personnaliser en fonction des cas.
L’outil d’analyse Dareboost peut aider à comprendre comment et pourquoi mettre en place tout ça. J’ai découvert une bonne partie de ces paramètres grâce à lui.
Langage du code ci-dessous : Apache
<IfModule mod_headers.c>
# Disable automatic resource type detection
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
# Block all content when an XSS attack is suspected
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
Header always set X-XSS-Protection "1; mode=block"
# Block frame rendering for the website - Prevent "clickjacking" attacks
# SAMEORIGIN value to allow WordPress and plugins updates
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
Header always set X-FRAME-OPTIONS "SAMEORIGIN"
# The server should not be able to communicate in HTTP when it has an HTTPS connection - Prevent "man in the middle" attacks
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
# Max age = 1 year
# Read this doc before: https://blog.dareboost.com/fr/2017/09/hsts-fiabiliser-connexions-securisees/
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains;"
# Security policy on the source of resources (CSP) - Prevent XSS attacks
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
# This code is to customize. Here, no external resource and no inline style or script are allowed. Be careful by using this. Test it carefully!
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; base-uri 'self';"
</IfModule>
[.htaccess] Redirection www et HTTPS
Mettre son site en HTTPS (avec un certificat SSL valide, bien sûr) est un pré-requis dès lors qu’il y au moins un formulaire de contact ou une administration de site à laquelle se connecter.
Code pratique à avoir sous la main (pour le côté pratique, j’ai aussi ajouté la redirection vers l’URL en www.) à placer dans le fichier .htaccess de son site web
Langage du code ci-dessous : Apache
<IfModule mod_rewrite.c>
# Redirect both to HTTPS and www.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^.*$ https://www.%1%{REQUEST_URI} [L,NE,R=301]
# Redirect to HTTPS only
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Source : https://www.webrankinfo.com/dossiers/techniques/redirection-http-https
Ressources (9) :
Comment implémenter Content Security Policy | Dareboost
Langue du lien : Français
Article daté du 19 août 2016, écrit par Damien Jubeau
Comment se défendre contre Google FLoC | Plausible Analytics
Langue du lien : Anglais
Article de Marko Saric, publié le 15 avril 2021 en réponse à la nouvelle fonctionnalité de Google : FLoC. Il y est expliqué comment faire en sorte que cette fonctionnalité n’impacte pas nos propres sites web (directive htaccess).
Feuille de triche sur la sécurité web | Mozilla
Langue du lien : Anglais
Je mets ce lien notamment pour la « Web Security Cheat Sheet » mais la page entière est intéressante.
Fichier .htaccess de HTML5 Boilerplate
Langue du lien : Anglais
Ce fichier .htaccess peut nous apprendre plein de choses !
Observatory par Mozilla
Langue du lien : Anglais
Outil en ligne qui permet d'auditer les règles de sécurité en place sur un site web pour aider à la réalisation de sites plus sûrs et plus sécurisés
target="_blank"
et sécurité | JitBit
Langue du lien : Anglais
Article daté du 4 mai 2016, paru sous le titre Target="_blank" - the most underestimated vulnerability ever, très clair sur l'explication du problème de sécurité posé par les liens avec un attribut target="_blank"
.
Test de configuration SSL | Qualys SSL Labs
Langue du lien : Anglais
L'outil SSL Server Test permet de tester la configuration SSL des serveurs web.
Tour d’horizon sur HTTPS et les en-têtes de sécurité | Alsacréations
Langue du lien : Français
Article écrit par Nicolas Hoffmann, daté du 14 Février 2017