2010-08-30 8 views
6

Es gibt eine IP (aus China), die versucht, meine gesamte Website herunterzuladen. Es lädt alle meine Seiten herunter und lädt den Server erheblich (ich habe mehr als 500 000 Seiten). Wenn ich mir die Zugriffsprotokolle anschaue, kann ich feststellen, dass es sich definitiv nicht um einen Google-Bot oder einen anderen Suchmaschinen-Bot handelt.Prävention von der gesamten Website herunterladen?

Vorübergehend habe ich es verboten (mit iptables-Regeln), aber es ist keine Lösung für mich, weil einige meiner echten Benutzer auch die gleiche IP haben, so dass sie auch verboten sind und nicht auf die Website zugreifen können.

Gibt es eine Möglichkeit, solche "Benutzeraktivitäten" zu verhindern? Vielleicht ein Mechanismus, der Captcha implementiert, wenn Sie versuchen, mehr als 5 Anfragen pro Sekunde oder etwas anzufordern?

P.S. Ich benutze Yii Framework (PHP).

Alle Vorschläge werden sehr geschätzt.

danke!

Antwort

5

Sie haben Ihre eigene Frage beantwortet!

Make captcha erscheinen, wenn die Anfrage eine bestimmte Anzahl pro Sekunde oder pro Minute überschreitet!

Sie sollten CCaptchaAction zu implementieren, wie this.

+0

Ich meinte, wie soll ich das umsetzen? : D Benutzersitzungen? – Mensch

+0

Siehe meine Bearbeitung oben. – pavanlimo

0

Ich denke, der beste Weg, um verdächtige Benutzeraktivität zu überwachen, ist wirklich Benutzersitzung, CWebUser 's getState()/setState(). Speichern Sie die aktuelle Anfragezeit in der Benutzersitzung, vergleichen Sie sie mit mehreren vorherigen Werten, zeigen Sie das Captcha an, wenn der Benutzer zu oft Anfragen stellt.

Neue Komponente erstellen, über CWebApplication::$preload vorladen und Benutzeraktivität in Komponenten init() Funktion überprüfen. Auf diese Weise können Sie den Bot-Check einfach ein- und ausschalten.

Verwandte Themen