Blocco connessioni TOR
Blocco connessioni TOR postato il 19/02/2015 12:30:11 nel forum programmazione, open source e hosting
Ciao
Per chi, quali che ne siano le ragioni, non intende consentire l'accesso al gioco a chi usa connessioni TOR (in breve: browser derivato da mozilla che maschera completamente l'IP address del navigante basandosi su un network di proxy, vedere https://www.torproject.org/ ↗) mettiamo a disposizione una semplice implementazione che riconosce la connessione, basandosi su uno strumento fornito dal network TOR stesso.
Come funziona:
1) Il codice effettua una chiamata a un servizio ospitato da TOR Project e confronta l'IP dell'utente con l'elenco dei server (per la precisione, gli exit node) inviando una risposta
2) Se la funzione riconosce la risposta come un "positivo" ossia se la connessione dell'utente "esce" da uno degli exit node della rete TOR, una variabile viene impostata con valore 1.
A quel punto con la variabile è possibile farci quello che più aggrada, es:
- inserire la connessione e l'utente in un log speciale
- inviare un alter a Pippo, Pluto, Paperino o chiunque sia interessato a sapere quali utenti usano TOR per connettersi alla land
- reindirizzare il browser dell'utente su una pagina di logout
- (...)
L'implementazione che proponiamo e' la piu' semplice.
Viene creato un file php da includere nelle pagine che devono effettuare il controllo (il file contiene le due funzioni che effettuano la chiamata al servizio di TOR network), ed il codice da inserire in testa alla pagina (importante: deve essere inserito prima di qualunque output html e DOPO la chiamata include che richiama il file contenente le funzioni)
File da includere (nome suggerito: tor_blocker.inc.php )
<?php
// ---> TOR BLOCKER
function ReverseIPOctets($inputip){
$ipoc = explode(".",$inputip);
return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}
function IsTorExitPoint(){
if (gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2")
{
return 1;
} else {
return 0;
}
}
// <--- TOR BLOCKER
?>
Come funziona? La funzione ReverseIPOctets inverte le triplette di numeri che compongono l'ip address da verificare, dal momento che l'IP deve essere fornito in questo formato al servizio TOR che verifica la presenza dell'IP nell'elenco dei nodi d'uscita della rete TOR
L'Ip "invertito" viene passato alla funzione IsTorExitPoint che effettua materialmente la chiamata al servizio e controlla la risposta. Se la risposta e' "127.0.0.2" l'IP fornito fa parte dei nodi d'uscita della rete TOR e viene riconosciuto come tale.
Effettuare il controllo. A voi decidere dove e' più' opportuno effettuare il controllo: se al momento del login, al momento della registrazione o su specifiche pagine di vostra scelta
Supponendo che abbiate salvato le funzioni di cui sopra in un file chiamato tor_blocker.inc.php e che il file si trovi nella stessa cartella della pagina in cui volete inserire il controllo (esempio in una ipotetica pagina login.php)
// ---> TOR BLOCKER
require_once('tor_blocker.inc.php'); // inclusione delle funzioni
$IS_TOR_CONNECTION = IsTorExitPoint();
if($IS_TOR_CONNECTION > 0)
{
// fai qualche cosa, ad esempio:
header("location: http://www.sgamato.it");
// fine
}
// <--- TOR BLOCKER
Ovviamente al posto della funzione header che reindirizza il browser su un'altra pagina (altrettanto ovviamente, sostituire 'http://www.sgamato.it') potete metterci qualsiasi altro codice vi interessi eseguire nel momento in cui la connessione dell'utente viene riconosciuta come proveniente dalla rete TOR.
Ricordatevi che se usate la funzione header() quel pezzo di codice va inserito PRIMA che venga effettuato alcun tipo di output html, quindi l'ideale sarebbe inserirlo in testa alla pagina php.
Enjoy.
Pagine → 1
25/08/2017 11:07:51
Riuppo il topic per vedere se è solo un problema mio o anche di altri.
A me lo script ha smesso di funzionare all'improvviso da un paio di giorni (non reindirizza alla pagina se si usa TOR). Ho cercato di risalire al bug (sostituendo anche con i valori true e false) ma non ci sono riuscito.
Qualcuno ha qualche idea?
25/08/2017 11:14:15
miagy ha scritto: Riuppo il topic per vedere se è solo un problema mio o anche di altri.
A me lo script ha smesso di funzionare all'improvviso da un paio di giorni (non reindirizza alla pagina se si usa TOR). Ho cercato di risalire al bug (sostituendo anche con i valori true e false) ma non ci sono riuscito.
Qualcuno ha qualche idea?
A quanto pare il sito https://www.torproject.org/ https://www.torproject.org/ ↗ restituisce un "Errore di Privacy" credo sia legato a quello.
Anche altri siti che offrivano un servizio simile hanno problemi.
Forse è legato a questo. Ma lascio la parola ad IGI :)
26/08/2017 13:18:22
Sì, anche io direi di aspettare IGI. Secondo me, comunque, l'errore è sicuramente il mancato riconoscimento di:
ilgrandeinverno ha scritto: Ciao
if($IS_TOR_CONNECTION > 0)
27/08/2017 21:20:56
if($IS_TOR_CONNECTION > 0)
Ciao :)
Dal momento che il nostro hosting blocca già di suo le connessioni TOR, ammetto di non essermi più occupato della questione e di aver disattivato direttamente il check. Intanto hai provato a commentare questa parte e vedere come è valorizzata la variabile?
Gli darò un'occhiata appena riesco, comunque. Grazie :)
27/08/2017 21:51:05
chi usa TOR disabilita anche JS ed altre funzionalità, quindi quale sarebbe il motivo di andare su un PbC usando TOR? Mi sfugge la necessità di dover fare un controllo anti TOR quando per primi non possono usarlo sulla land (e se usano JS su TOR allora non serve nemmeno commentare)
27/08/2017 21:53:36 e modificato da ghennadi72 il 27/08/2017 21:55:09
longbow ha scritto: chi usa TOR disabilita anche JS ed altre funzionalità, quindi quale sarebbe il motivo di andare su un PbC usando TOR? Mi sfugge la necessità di dover fare un controllo anti TOR quando per primi non possono usarlo sulla land (e se usano JS su TOR allora non serve nemmeno commentare)
Io non commenterei nemmeno l'uso di TOR su una land, infatti. Eppure c'è chi lo usa. Quest'ambiente è pieno zeppo di fantasmagorici hacker e paladini dei diritti civili che sentono la loro privacy minacciata da quelle carogne di gestori.... risultato i fantasmagorici wannabe-hacker si collegano con TOR e non disabilitano JS perchè guai a perdersi anche solo una funzionalità della land ☕
28/08/2017 01:40:06
Io, utente bannato e strabannato, voglio (perché mi gira) entrare in Land con un nuovo PG... Uso TOR e chi mi troverà mai?
Vi lascio con un quote molto autentico (🤣)
Se vuoi la Privacy... resta a casa con le finestre chiuse, che i peggiori nemici della privacy sono i vicini XD
[Franklin D. Roosevelt]
28/08/2017 10:05:50
Io, utente bannato e strabannato, voglio (perché mi gira) entrare in Land con un nuovo PG... Uso TOR e chi mi troverà mai?
L'utente in questione dovrebbe accettare che in quel posto non è gradito (indipendentemente dal motivo) e non tentare di rientrarci di nascosto.
Se vieni buttato fuori da un club perchè non sei gradito non è che ti travesti o prendi documenti falsi e basta per rientrarci, semplicemente non ci rientri.
Che poi tu possa fargli cattiva pubblicità perchè ti hanno buttato fuori perchè hai messo gli occhi sulla donna del padrone del locale piuttosto che non aver rispettato il dresscode è una cosa diversa ed è un diritto.
Ma non vedo proprio perchè rientrare quando si sa di non essere graditi.
28/08/2017 17:50:34
dyrr ha scritto:
L'utente in questione dovrebbe accettare che in quel posto non è gradito (indipendentemente dal motivo) e non tentare di rientrarci di nascosto.
[...]
Ma non vedo proprio perché rientrare quando si sa di non essere graditi.
Avrei diversi utenti a cui fare questa domanda... XD
Player bannati per ripetute (e gravi) infrazioni al regolamento che continuano a iscriversi ancora e ancora...
Alcuni con lo scopo di fare spam o semplicemente sfogarsi... altri, che si creano un nuovo PG e provano a rigiocare e ricadono poi, inevitabilmente, negli stessi vizi...(e finire bannati di nuovo).
Quando accade (la seconda ipotesi dico) lo prendo sempre come un "buon segno"... perché nonostante il ban significa che c'è interesse a tornare a giocare. A volte (forse stupidamente) concedo anche una seconda possibilità... Ma certo, mai una terza.
"Io utente bannato" che voglio assolutamente tornare a ruolare, manderei una mail al gestore (che per legge deve essere in homepage) chiedendo di essere riammesso... Però qui si parla in maniera puramente teorica, perché fin'ora non sono mai stato bannato in nessuna land, e conto di non farlo accadere :-p
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Raja Dunia ↗
New Orleans ↗
Foundation Galactic Frontier ↗
Hero Wars ↗
Tiles Survive ↗
Neverness to Everness ↗
Seconda Era ↗
World of Warship ↗