Menü
aus ein
Ansicht umschalten Baum an
Avatar von Textkotze
  • Textkotze

262 Beiträge seit 06.03.2008

Hier steht ein bisschen, wie es geht

Also ich möchte ungerne meinen Code veröffentlichen aber ich gebe
hier mal die Hinweise, wie man meine Maßnahmen grundsätzlich macht:

===================
In die index.php von Wordpress kommt folgender php-Code ganz an den
Anfang rein:

if(strpos($_SERVER["REQUEST_URI"], "trackback")) {
  header("HTTP/1.0 404 Not Found");
  exit;
}

Dadurch tut man so, als gäbe es keine Trackbackseiten mehr. Der
radikale Schritt des Sperrens ist deshalb, damit Zugriffe auf die
Trackbacks keine Last mehr auf dem Server erzeugen. Es soll nichtmal
das Grundgerüst von Wordpress geladen werden, sondern das Skript
sofort enden.

===================

Damit Besucher gesperrt werden, die mehr als X Seiten in einer
bestimmten Zeiteinheit aufrufen, mache ich folgendes:
In eine Tabelle in meiner Datenbank schreibe ich die IP, die aktuelle
Zeit als unix-timestamp und eine Spalte anzahl rein. Jeder Besucher
löst zuerst einen Query aus, der alle Einträge löscht, die älter sind
als XX Sekunden. Dann kommt eine Abfrage, die schaut, ob der Besucher
mit seiner IP schon in der Tabelle erfasst ist. Ist das der Fall,
wird anzahl um eins erhöht (update tabelle set anzahl=(anzahl+1)
where ip=$ip)
Danach schaue ich nach, wie hoch die Zahl in der Spalte "anzahl" ist.
Ist diese höher als ein von mir eingestellter wert, wird in die
htaccess-Datei folgendes geschrieben:

deny from ip-adresse-des-besuchers

Dadurch bekommt der Besucher bei seinem nächsten Besuch nur noch ein
"Forbidden" angezeigt. Das belastet den Server nicht und nutzt dem
Angreifer dann auch nicht mehr viel. Als ratsamer Wert ist: maximal
30 Zugriffe in 50 Sekunden.

Nachts schreibe ich die .htaccess-Datei jungfräulich neu - damit sind
dann alle gesperrten IPs wieder entfernt und zugelassen, bis sie das
nächste Mal auffallen.

===================

Akismet habe ich so erweitert, dass ich vor dem Aufruf der Zeile
"akismet_http_post($query_string, ..." prüfe, ob ich für die IP schon
eine Abfrage innerhalb der letzten 10 Minuten gemacht habe. Ist das
der Fall, schaue ich, ob in meiner .htaccess-Datei schon die
IP-Adresse des Kommentators drin steht. Ist das der Fall: exit();

Ist das nicht der Fall, mache ich die Akismet-Prüfung. Schlägt diese
fehl, also ist hier Spam erkannt worden, kommt seine IP in die
.htaccess rein.

if ( 'true' == $response[1] ) {
 //Es wurde Spam erkannt - seine IP-Adresse in die .htaccess-Datei
rein
}

Ich denke, die Anleitung sollte reichen, um die Serverlast DEUTLICH
zu verringern.
Bewerten
- +
Anzeige