Internal Server Error quando controllo se un utente è dietro Proxy

ciao a tutti,

ho trovato in rete questo script molto utile per rintracciare gli utenti che utilizzano un proxy:

if ($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP']
 || $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
 || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
 exit('Stai usando un proxy');
}

Tuttavia appena implementato il codice non riesco più ad accedere al mio sito e ricevo l'errore 500 (Internal Server Error).

Dopo pochi test ho scoperto che è per via del controllo

@fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30)

se mi appare quell'errore, però se lo tolgo ho appurato che i proxy riescono facilmente a navigare le mie pagine.

Quindi..cosa fare? Grazie del sostegno :)

inviato 7 anni fa
cerbero
X 0 X

Il problema è in locale o sul server di hosting?

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

è collocato sul server di hosting NetSons,

vi do maggiori dettagli:

Versione Apache   2.2.11 (Unix)

Versione PHP   5.2.9

Versione MySQL   5.0.67-community

Architettura O.S.   x86_64

Sistema operatvio   Linux

risposto 7 anni fa
cerbero
X 0 X

Dovresti contattare i fornitori dell'hosting e chiedere se hanno disabilitato la funzione fsockopen

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

ok, grazie mille Gianni,

sei sempre disponibile :)

risposto 7 anni fa
cerbero
X 0 X

niente da fare: la funzione è disabilitata e non la vogliono attivare :buck:

esiste qualche altro script in grado di scovare tutti gli utenti che navigano dietro un proxy?

risposto 7 anni fa
cerbero
X 0 X

Non credo ci sia altra strada. Io mi limiterei a togliere nell'IF di controllo la chiamata a fsockopen

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

l'unica cosa da fare è quella

anche se però senza quell'IF riesco ad accedere con tutti i proxy online :(

risposto 7 anni fa
cerbero
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda