Description
Si Korben nous informe du comment bloquer certaines attaques pour et par le serveur web Nginx - sa manière de le faire n’est pas forcément des meilleures !
Utilisons le contexte location
, et écrivons-les ainsi :
Code : nginx
## Block Queries
location ~ "(\"|%22).*(<|>|%3)" { return 403; }
location ~ "(javascript\:).*(\;)" { return 403; }
location ~ "(\|\.\./|`|=\'$|=%27$)" { return 403; }
location ~ "(\;|\'|\"|%22).*(union|select|concat|insert|drop|update|md5|benchmark|or|and|if)" { return 403; }
location ~ "(<|%3C).*script.*(>|%3)" { return 403; }
location ~ "[a-zA-Z0-9_]=http://" { return 403; }
location ~ "[a-zA-Z0-9_]=(\.\.//?)+" { return 403; }
location ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+" { return 403; }
location ~* ".*(asp|bs)$" { return 403; }
location ~* ".*(admin|cgi|manager|pma|user|wp|wordpress).*" { return 403; }
location ~ "^base64_(en|de)code\(.*\)|localhost|mosconfig" { return 403; }
Au lieu de retourner une erreur 403, informant que la requête est valide, mais refusée par le serveur, préférez retourner une erreur 444 - où le serveur refuse d’envoyer toute information, et ferme la connexion directement !
c’est cela aussi le pouvoir tant réputé de nginx ;-)