PHP: Realtime-Blackhole-List abfragen
Ein Mittel gegen Foren- und Kommentarspam ist die Nutzung so genannter Realtime-Blackhole-Lists, kurz RBL. Um so eine Liste zu nutzen, kehren Sie die Clientadresse um und ergänzen Sie um die Zonen-Adresse der Blacklist. Damit starten Sie eine DNS-Abfrage.
Das Ergebnis sagt, ob der Client auf einer schwarzen Liste steht. Ein Beispiel veranschaulicht das Prinzip:
<?php
//Blacklist abfragen
$strBlName = 'l1.spews.dnsbl.sorbs.net';
//$strBlName = 'cbl.abuseat.org';
$strIP = '69.31.67.241'; //Adresse auf Liste
//$strIP = '66.249.85.99'; //IP von Google - sollte
nicht auf Liste sein
$strIPReverse = implode('.', array_reverse(explode('.',
$strIP)));
$strQuery = $strIPReverse.'.'.$strBlName;
echo 'Abfrage von: '.$strQuery."<br/>\n";
echo gethostbyname($strQuery);
?>
In der Variablen $strBlName steht der Name für die Abfrage des RBL-Servers. Gleich darunter finden Sie auskommentiert noch einen weiteren Server. In $strIP steht die zu untersuchende IP-Adresse. Die im Beispiel verwendete 69.3.167.241 wird als Spam-Server erkannt. Als Gegenprobe finden Sie in der darauf folgenden, auskommentierten Zeile noch eine IP-Adresse von Google.
Jetzt gilt es, die Adresse umzukehren. Dazu nimmt zunächst ein explode() die IP-Adresse auseinander und packt sie in ein Array. Das Array wird dann mit array_reverse() umgekehrt und mit implode() wieder zu einem String zusammengesetzt.
Anschließend fügt das Skript die Adresse und die Zone zusammen und startet damit eine Abfrage in gethostbyName(). Ist das Ergebnis wie in diesem Beispiel 127.0.0.2, können Sie davon ausgehen, dass die IP-Adresse auf der Spammer-Liste des Servers steht. Erscheint stattdessen nochmals die auch in $strQuery enthaltene Zeichenkette, befindet sich der Server nicht auf der Liste.
Nicht alle RBL-Server finden auch alle Spam-Quellen. Deshalb empfiehlt es sich, bei Forum-Postings mehrere Quellen abzufragen.
Bedingungen für die Kommentareingabe
Hinweis
Add to Del.icio.us