# Nginx WAF rules for PHP location / { set $attack_detected 0; if ($request_uri ~* "(?:") { set $attack_detected 1; } if ($request_uri ~* ".*.ph(?:pd*|tml|ar|ps|t|pt).*$") { set $attack_detected 1; } if ($request_uri ~* "[oOcC]:d+:\".+?\":d+:{.*}") { set $attack_detected 1; } if ($request_uri ~* ".*.(?:phpd*|phtml)..*$") { set $attack_detected 1; } if ($request_uri ~* "AUTH_TYPE|HTTP_(?:ACCEPT(?:_(?:CHARSET|ENCODING|LANGUAGE))?|CONNECTION|(?:HOS|USER_AGEN)T|KEEP_ALIVE|(?:REFERE|X_FORWARDED_FO)R)|ORIG_PATH_INFO|PATH_(?:INFO|TRANSLATED)|QUERY_STRING|REQUEST_URI") { set $attack_detected 1; } if ($attack_detected = 1) { return 403; } }