Restreindre les POST Requests avec htaccess

Souvent les attaques serveurs sont effectuées avec des POST requests. Il est possible d'y mettre un terme avec htacces.

"Les fichiers .htaccess sont des fichiers de configuration des serveurs HTTP Apache. Leur particularité est leur emplacement : dans les répertoires de données du site Web, au lieu du répertoire de configuration d'Apache. La portée de leur configuration est limitée au contenu du répertoire où ils résident. Cette particularité apporte deux principaux avantages : leur gestion peut être déléguée à des utilisateurs n'ayant pas le droit de gérer le serveur HTTP lui-même ; les modifications sont prises en compte sans qu'il soit nécessaire de redémarrer le serveur HTTP.
Les fichiers .htaccess sont notamment utilisés pour configurer des droits d'accès, des redirections d'URL, des messages d'erreur personnalisés, et des associations d'extension de nom de fichier à un type MIME."
Source : Wikipedia

Tous les sites en gestion de contenu ont un fichier htaccess.txt (ou .htaccess) s'il est activé. Pour le mettre à jour, il suffit d'ajouter le .txt si besoin, télécharger le fichier sur votre ordinateur pour le modifier avec un éditeur de texte, uploader le fichier avec son extension .txt, puis le renommer en .htaccess sans l'extension pour l'activer. Si vous télécharger localement le fichier .htaccess sans l'extension, il est possible que vous ne le voyiez pas sur votre ordinateur.

Il est à noter que cela peut aussi impacter le fonctionnement de votre site, on continue donc à autoriser le serveur à effectuer des POST Requests, ainsi que certains utilisateurs, les administrateur d'un site de gestion de contenu par exemple qui peuvent avoir besoin de cette autorisation pour des mises à jour.

Les autres utilisateurs recevront une erreur 403 (dans l'exemple ci-dessous), on pourrait aussi imaginer une autre règle pour les rediriger vers la page d'accueil du site par exemple.

Le code à ajouter à votre fichier htaccess :

## Restreindre les POST Requests sur le serveur
RewriteCond %{REQUEST_METHOD} POST

# autoriser le serveur effectuer des POST Requests
RewriteCond %{REMOTE_ADDR} !127.0.0.1   

# autoriser des POST Requests pour des utilisateurs fiables avec leur adresse IP
RewriteCond %{REMOTE_ADDR} !93.23.147.115   

# Envoyer les POST Requests en 403 forbidden
RewriteRule ^ / [F]
BLOG COMMENTS POWERED BY DISQUS