Mam pomysł żeby zrobić taką modyfikację, która nie wpusci na forum proxy
Jak sie np. zbanuje kogoś ze stałym IP, albo zakres Neo to zwykle natręci wracają przez proxy.
Ten kod należy wstawić na początku common.php:
Kod:
// BEGIN ProxyBLocker // Author: Ccn
$proxycheck = 1; // sprawdzanie właczone = 1, wyłączone = 0
if($proxycheck) {
$proxyaddr = gethostbyaddr($_SERVER['REMOTE_ADDR']);
// Whitelist
// Ładowanie IP
$wl_filename = 'pl_whitelist.txt'; // Nazwa pliku z IP
@$wl_file = fopen($wl_filename, 'r');
@$wl = fread($wl_file, filesize($wl_filename));
@fclose($wl_file);
@$wl_array = explode('|', $wl);
// Ładowanie nazw hostów
$wlh_filename = 'pl_whitelist_h.txt'; // Nazwa pliku z nazwami hostów
@$wlh_file = fopen($wlh_filename, 'r');
@$wlh = fread($wlh_file, filesize($wlh_filename));
@fclose($wlh_file);
@$wlh_array = explode('|', $wlh);
// Sprawdzanie czy adres jest na Whitelist
if(in_array($_SERVER['REMOTE_ADDR'], $wl_array) || in_array($proxyaddr, $wlh_array))
{ /* Adres na Whitelist - wpuszczanie na strone */ }
else {
// Jesli nie jest na Whitelist sprawdzanie czy jest z Polski
$proxytmp = explode('.',$proxyaddr);
$proxycc = array_pop($proxytmp);
if($proxycc == 'pl') {
// Jesli jest z Polski to sprawdzamy czy ma Proxy
if($_SERVER['HTTP_VIA'] || $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_X_FORWARDED']) {
die('Dostep zabroniony'); // Tekst wyswietlany polskim proxy
// Można zastąpić tekst własnym tekstem który będzie wyświetlany polskim proxy
}
else { /* Nie wykryto proxy, adres jest z Polski - wpuszczenie na strone */ }
}
else {
die('Dostep zabroniony'); // Tekst wyswietlany adresom zza granicy
// Można zastąpić tekst własnym tekstem który będzie wyświetlany gościom zza granicy
}
} // Whitelist
} // Skrypt wlaczony/wylaczony
// END ProxyBLocker // Author: Ccn
Co to robi?
1. Sprawdza nazwe hosta odwiedzającego
2. Sprawdza ciąg znaków po ostatniej kropce, jeśli niejest PL (np. neoplus.adsl.tpnet.
pl) to blokuje dostęp.
3. Jeśli adres ma PL na końcu to sprawdza czy nie istnieje któraś z wartości które wysyłają proxy, czyli tutaj HTTP_VIA, HTTP_X_FORWARDED_FOR itd.
4. Spradza czy host lub IP jest na whitelist - jeśli jest wpuszcza, jeśli nie ma to sprawdza proxy.
4. Jeśli wszystko gra, wpuszcza na forum, jeśli nie blokuje dostęp.
Teraz objaśnienie:
Nadaje sie tylko na POLSKIE fora, jeśli to forum międzynarodowe to odpada, bo przyjąłem, że odrzucimy WSZYSTKIE wejścia zza granicy.
Dlaczego? Za granicą jest kupa Elite Proxy, które są poprostu niewykrywalne, a w Polsce nieudało mi sie znale
źć //ort. działającego.
Jeśli koleś ma zwykłe polskie proxy to musi istnieć któraś z wartości wysyłanych przez nie. Jeśli którakolwiek istnieje to blokowany jest dostęp.
Tylko Elite Proxy nie wysyła żadnych wartości, ale jak mówiłem, nie znalazłem działającego w Polsce, a nawet jak będzie powiedzmy 5, to można je łatwo zbanować
Uwagi moderatora Ccn (dodane 07 Sie 2007, 10:08):
Ostatnio edytowany przez Ccn 07 Sie 2007, 10:08, edytowano w sumie 8 razy