Elaborazione
Loading
Articolo numero: faq-125 Articolo numero: faq-125

Bloccare attacco Dos ad un sito web

Posted on 16-10-2011 - By Admin  NTLab Italia Solutions

Se hai la necessità di proteggere il tuo sito web da tentativi di attacco DoS, questo semplice script e ciò che serve.

Il funzionamento è molto semplice:

La prima cosa è la verifica del file blocca.ip che contiene la lista degli IP bannati oppure intere subnet. Confronta l'indirizzo IP che si collega al sito in questione con quelli nella lista e, se c'è un match restituisce un die nella pagina.

Il match si può fare sia inserendo nella lista singoli IP, sia subnet di classe A, B o C.

Per esempio:

Se metto in blacklist 1.3.0.0/16 e si collega qualcuno con indirizzo IP 1.3.3.4; quest'ultimo verrà bloccato dato che il suo IP appartiene alla subnet incriminata.

Questo codice è consigliabile inserirlo in una pagina che viene sempre richiamata in modo dinamico da tutto il sito web.

Ad esempio, il file header del portale, forum o del blog, in modo che venga sempre eseguito al richiamo di ogni script PHP.

<php define ('BLACKLIST','blocca.ip'); $list=file(BLACKLIST); foreach ($list as $addr) { $addr=trim($addr); $host_addr=$_SERVER['REMOTE_ADDR']; // Semplice indirizzo IP if ($host_addr==$addr) die ("Your IP is {$addr} and you're not allowed to view this pagen"); // Subnet di classe C else if (preg_match('/(d+.d+.d+).0/24/',$addr,$sub)) { $subnet=trim($sub[1]); if (preg_match("/^{$subnet}/",$host_addr)) die ("Your IP is {$host_addr} and you're not allowed to view this pagen"); } // Subnet di classe B else if (preg_match('/(d+.d+).0.0/16/',$addr,$sub)) { $subnet=trim($sub[1]); if (preg_match("/^{$subnet}/",$host_addr)) die ("Your IP is {$host_addr} and you're not allowed to view this pagen"); } // Subnet di classe A else if (preg_match('/(d+).0.0.0/8/',$addr,$sub)) { $subnet=trim($sub[1]); if (preg_match("/^{$subnet}/",$host_addr)) die ("Your IP is {$host_addr} and you're not allowed to view this pagen"); } } ?>

Valutazione articolo

Torna a Ricerca

Hosting WordPress GRATIS | Prendi subito il COUPON
05-07-2017

Non perdere l'occasione, inserisci il COUPON: WORDP040717 nella fase di acquisto e prova il piano Hosting WordPress gratuitamente!

La prova è valida solo per il primo mese e senza obbligo di rinnovo.

L'offerta è valida fino al 11/07/2017

Hosting WordPress GRATIS | Prendi subito il COUPON
04-07-2017

Non perdere l'occasione, inserisci il COUPON: WORDP040717 nella fase di acquisto e prova il piano Hosting WordPress gratuitamente!

La prova è valida solo per il primo mese e senza obbligo di rinnovo.

L'offerta è valida fino al 11/07/2017