Diese Seite verwendet Cookies, um Inhalte und Anzeigen zu personalisieren. Außerdem geben wir Informationen zu Nutzung unserer Website an unsere Werbe-Partner weiter. Mit der Nutzung unserer Webseite stimmen Sie dem zu! Details ansehen
Sie sind hier: Startseite - Tutorials - Proxy Filter 

Kampf dem Spam: Proxy Server an Eintragungen hindern

Leider nimmt der Spam nicht nur im E-Mail Verkehr zu, auch sogenannter Formular-Spam auf Webseiten wird immer mehr. Dabei wird versucht, auf verschiedenen Wegen automatisiert über Skripte oder Programme, oft auch mit Trojaner infizierten Rechnern, in großer Anzahl Einträge in Formulare auf Webseiten vorzunehmen und die Formulare abzusenden. Oft schalten diese Täter dabei anonyme Proxy Server dazwischen, um ihre Spuren zu verschleiern.

Das folgende Skript - eine php Funktion - prüft einen Client darauf, ob er über einen Proxy zugreift. Greift er über einen Proxy zu, liefert die Funktion ein false zurück. Debai kann definiert werden, ob alle Proxy Aufrufe oder nur anonyme Proxies geblockt werden sollen.

Bitte beachten Sie, das Skript erkennt nicht alle Proxyserver. Hoch anonymisierte Proxy Server, die alles darauf anlegen, keine Hinweise zu geben, kann das Skript nicht erkennen. Außerdem arbeitet es auf der Applikationsebene und nicht auf der Protokollebene, was die Möglichkeit der vorherigen Beeinflussungen geben kann. Wir übernehmen keinerlei Haftung!

<?php

# © Elmar Eigner, open-eye
# Proxy detection script

$ip = false;

function proxy_check ( $anonym = 1 ) {
$isproxy = false;
$GLOBALS['ip'] = $_SERVER['REMOTE_ADDR'];
if ( isset ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$isproxy = true;
$GLOBALS['ip'] = $_SERVER['HTTP_X_FORWARDED_FOR'].'@'.$GLOBALS['ip'];
if ( $anonym == 1 ) {
if ( empty ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) OR
! preg_match ( "/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/",
$_SERVER['HTTP_X_FORWARDED_FOR'] ) OR
$_SERVER['HTTP_X_FORWARDED_FOR'] == $_SERVER['REMOTE_ADDR'] ) {
return true;
}
return false;
}
}
else if ( isset ( $_SERVER['HTTP_VIA'] ) ) {
$isproxy = true;
$GLOBALS['ip'] = $_SERVER['HTTP_VIA'].'@'.$GLOBALS['ip'];
if ( $anonym == 1 ) {
if ( empty ( $_SERVER['HTTP_VIA'] ) OR
! preg_match ( "/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/",
$_SERVER['HTTP_VIA'] ) OR
$_SERVER['HTTP_VIA'] == $_SERVER['REMOTE_ADDR'] ) {
return true;
}
return false;
}
}
else if ( isset ( $_SERVER['HTTP_PROXY_CONNECTION'] ) ) {
return true;
}
return $isproxy;
}

# Nutzung 1: Verhindert alle Proxies
if ( proxy_check ( 0 ) ) {
print "Keine Proxies zugelassen!";
exit ( );
}
# Nutzung 1: Verhindert anonyme Proxies
if ( proxy_check ( 1 ) ) {
print "Keine anonymen Proxies zugelassen!";
exit ( );
}

?>

Beispiel:

Hier testen - nutzen Sie selber gerade einen Proxy?

Seiteninformationen:
Kurzbeschreibung: Kampf dem Spam: Proxy Server an Eintragungen hindern. Wie filtert man mit php Anfragen (anonymer) Proxies?
Suchbegriffe: Extern, Bild, Bilder, Grafik, Grafiken, Erreichbarkeit, verfügbar
Letzte Änderung: 22.03.2017 - 13:07
PageViews: 14.900
Startseite · Englische Version · Sitemap · Free Tools · Werbung · Impressum