%

PerishablePress 6G pour nginx

Article publié, le et modifié le
2 minutes de lecture

Cet article contient 378 mots.
Source brute de l'article :
Commit version : 4876234

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 !