Description
Le projet Perishable Press 6G est un projet de règles de filtrage
pour le serveur Apache, version 2 de préférence, à utiliser dans le
fichier .htaccess
.
Personnellement, j’avoue préférer nginx.
Je rappelle que les règles .htaccess n’existent pas pour nginx, même si on peut recréer le principe, de manière différente !
Donc, j’ai eu l’idée de convertir ces règles de filtrage et autres blacklistages pour l’intégrer à l’usage que j’ai de nginx.
À moins que je ne me trompe, cela devrait donner ce qui suit ci-dessous :
Configuration
6G:[QUERY STRINGS]
Dans le fichier de configuration du domaine à gérer, contexte server
:
Code : nginx
WordPress: plugin TimThumb
Si jamais vous utilisez le plugin TimTumb, il vous faudra commenter la ligne suivante :
location ~* "(thumbs?(_editor|open)?|tim(thumb)?)\.php" { return 444; }
6G:[REQUEST METHOD]
Toujours dans le contexte server
, utilisons la capacité native de nginx,
si la connexion n’est pas de type GET, ou HEAD, alors bloquons le flux :
Code : nginx
Nuage informatique
Pour ceux qui utilisent un serveur de nuage informatique, tel que Nextcloud,
ajoutez au moins la méthode PUT
, tel que :
if ($request_method !~ ^(GET|HEAD|PUT)$ ) { return 444; }
Formulaires
Si vous avez dans votre site, des pages qui ont des formulaires qui envoient
les données par la requête POST, ajoutez la dans la déclaration ci-dessus,
tel que :
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; }
6G:[REFERRERS]
Pour ce filtrage, utilisons la déclaration map
, dans le contexte http
du serveur :
Code : nginx
La règle ~([a-z0-9]{2000}) 1;
est mis en commentaire - je n’ai pas encore
trouvé comment faire pour l’inclure sans retour d’erreur !
Puis, rajouter dans le contexte server
ladite déclaration :
Code : nginx
6G:[REQUEST STRINGS]
Les filtres sur les requêtes sont toutes aussi simples que celles sur les
queries
… de type location
, dans le
contexte server
:
Code : nginx
CGI
Pour ceux qui utilisent un service CGI, supprimez la mention cgi-|
de la
ligne suivante :
location ~* "/(=|\$&|_mm|(wp-)?config\.|cgi-|etc/passwd|muieblack)" { return 444; }
6G:[USER AGENTS]
Là encore, utilisons l’astuce de la déclaration map
, dans le contexte http
:
Code : nginx
Puis écrivons dans le contexte server
:
Code : nginx
Et, voilà !
PS : Pensez à redémarrer le serveur nginx, après avoir lancé le test de la config !