Nein ich habe keinen Shop. Bei dem Beispiel ging es eher um das Prinzip, Urls über die htaccess zu filtern.
Dann sehen wir uns mal das *Prinzip* an 
[FONT=verdana]RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC][/FONT]
[FONT=verdana]RewriteRule ^(.*)$ - [F,L][/FONT]
[FONT=verdana]
und ohne Handbuch ist eine Bewertung schwer - aber PUT würde mir hier fehlen. Des weiteren mag ich PHP und in PHP kann ich festlegen, was ich in PHP annehmen möchte. Ein Blick in die PHP.ini hilft da immer.
[/FONT]
[FONT=verdana]
[/FONT]
[FONT=verdana]# Block WP timthumb hack[/FONT]
[FONT=verdana]RewriteCond %{REQUEST_URI} (timthumb\.php|phpthumb\.php|thumb\.php|thumbs\.php) [NC][/FONT]
[FONT=verdana]RewriteRule . - [S=1][/FONT]
[FONT=verdana]
[/FONT]
[size=10]Ich verwende timthumb - warum sollte ich es generell verbieten? [/SIZE]
[FONT=verdana]
[/FONT]
[FONT=verdana]# Block suspicious user agents and requests[/FONT]
[FONT=verdana]RewriteCond %{HTTP_USER_AGENT} (libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{HTTP_USER_AGENT} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR][/FONT]
[FONT=verdana]
Alles anzeigen
ja - ok ... das Prinzip kann ich verstehen ... würde ich vermutlich in ähnlicher form auch verwenden.[/FONT]
[FONT=verdana]
[/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>).* [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} (\./|\../|\.../)+(motd|etc|bin) [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR][/FONT]
[FONT=verdana]RewriteCond %{QUERY_STRING} (;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [/FONT][FONT=verdana]
Alles anzeigen
Dieses hat in einem Query-String nichts verloren - dies ist richtig - ABER - der Angriff erfolgt selten über den QueryString. Bzw. in einer Worpdress Umgebung habe ich an den unterschiedlichsten Stellen den Angriff und sehr selten im [/FONT][FONT=verdana]{QUERY_STRING}[/FONT]
Wenn es also nicht über die htaccess und nicht mit $_SERVER über PHP laufen soll, wie machst du das dann ?
Selbstverständlich verwende ich .htaccess und $_SERVER.
da ich eine Git Umgebung habe verwende ich zum Beispiel
# Block access to "hidden" directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or Git.
<IfModule mod_rewrite.c>
RewriteRule "(^|/)\." - [F]
</IfModule>
Bringt dir jetzt vermutlich wenig.
Du könntest dir ja die .htacess und die *auskommentierten* Bereiche einmal ansehen.
https://github.com/h5bp/html5-boi…aster/.htaccess
Die Entwickler beschäftigen sich zum Beispiel mit dem Thema
Clickjacking
http://de.wikipedia.org/wiki/Clickjacking
Und selbstverständlich nehme ich $_SERVER an und untersuche diese... Aber dies fehlte in deinem Script komplett.
Ich verwende für die Untersuchung preg_match in PHP. Und wenn ich etwas im Script untersuche, frage ich mich, nach dem Zweck...
Ich verwende auch Server Erweiterungen für Apache und PHP.