Domanda

Per ragioni che non esporrò, desidero vietare a un'intera azienda l'accesso al mio sito web.Controllare il nome host remoto in php utilizzando gethostbyaddr() funziona, ma questo rallenta troppo il caricamento della pagina.Grandi organizzazioni (es.hp.com o microsoft.com) hanno spesso blocchi di indirizzi IP.È comunque possibile ottenere l'elenco completo o sono bloccato con la lenta ricerca DNS inversa?Se sì, posso accelerarlo?

Modificare:Ok, ora so che posso usare il file .htaccess per vietare un intervallo.Ora, come posso capire quale dovrebbe essere quell'intervallo per una determinata organizzazione?

È stato utile?

Soluzione

Che ne dici di un .htaccess:

Deny from x.x.x.x

se devi negare un intervallo, di':192.168.0.x quindi utilizzeresti

Deny from 192.168.0

e lo stesso vale per i nomi host:

Deny from sub.domain.tld

o se vuoi una soluzione PHP

$ips = array('1.1.1.1', '2.2.2.2', '3.3.3.3');
if(in_array($_SERVER['REMOTE_ADDR'])){die();}

Per maggiori informazioni sul metodo htaccess vedere Questo pagina.

Ora, determinare l'intervallo sarà difficile, la maggior parte delle aziende (a meno che non siano grandi aziende) avrà un IP dinamico proprio come te e me.
Questo è un problema che ho già dovuto affrontare in passato e la cosa migliore è bannare il nome host o l'intero intervallo, ad esempio se sono su 192.168.0.123 allora bannare 192.168.0.123, sfortunatamente ne otterrai alcuni persone innocenti con entrambi i metodi.

Altri suggerimenti

Se pratichi un web hosting sicuro, allora hai un firewall.Usalo.

Le grandi aziende dispongono di blocchi di indirizzi IP, ma anche le aziende più piccole raramente cambiano il proprio IP.Quindi esiste un modo semplice per farlo senza ridurre le prestazioni:

Ogni mese esegui una ricerca inversa su tutti gli IP nel tuo registro e poi inserisci tutti gli IP utilizzati da quell'azienda nel tuo firewall come negati.

Dopo un po' inizierai a vedere se hanno indirizzi dinamici o meno.Se lo fanno, potresti dover eseguire ricerche inverse per ogni tentativo di connessione, ma a meno che non si tratti di una piccola azienda non dovresti preoccuparti di questo.

Continuare a utilizzare gethostbyaddr(), ma dietro una cache.Dovresti risolverlo solo una volta per indirizzo IP, quindi non sarebbe un problema di prestazioni significativo.Se lo desideri, riempi la cache dai log del tuo server in modo che gli utenti di ritorno non subiscano nemmeno il rallentamento una tantum.

Se il tuo obiettivo è rendere leggermente scomodo l'accesso al tuo sito per le persone di un'azienda, segui i consigli sopra.Ma non sarai in grado di assicurarti completamente di bloccare ogni accesso perché potrebbero sempre passare attraverso un proxy.E se è accessibile al resto del pubblico, dovrai preoccuparti di archive.org, delle cache dei motori di ricerca, ecc.

Probabilmente non è la risposta che stai cercando, ma è accurata.

Dai un'occhiata a .htaccess se stai usando apache: Esercitazione .htaccess

Prima cerca l'azienda su whois.net.Se sai che si tratta di un solo dominio, esegui una ricerca whois.Altrimenti, cerca i domini di loro proprietà per parola chiave.

Puoi scoprire i principali intervalli IP assegnati all'azienda tramite query whois e quindi creare le tue regole di negazione di conseguenza.

Lo so WikiScanner ti consente di cercare un'azienda o un'altra organizzazione e quindi elenca gli intervalli di indirizzi IP ad esse appartenenti.Tanto per fare un esempio, ecco tutto Indirizzi IP appartenenti a Google, almeno secondo WikiScanner.

Secondo Come funzionano le cose, usano qualcosa chiamato "IP2Location".

Hai accesso alla configurazione effettiva del server?Se è così, a seconda del server, potresti farlo nella configurazione.

Vedere Questo thread per alcune informazioni che potrebbero essere utili.

http://en.wikipedia.org/wiki/Rwhoistelnet rwhois.arin.net 4321

Questo funzionava.

Il carico non dovrebbe essere messo sul server web, dovresti metterlo sul firewall.

Tieni presente che utilizzando le tecniche di cui sopra non sarà mai possibile vietare completamente a un'azienda specifica di accedere al tuo sito web.Sarà comunque possibile per loro utilizzare server proxy o guardare il tuo sito da casa.

Se vuoi assolutamente controllare chi ha accesso, dovresti consentire solo agli utenti autenticati e autorizzati di accedere al tuo sito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top