Elaborazione
Loading
Assistenza
Attivazione RSS RSS Informazioni RSS Info
Registrazione dominio
 
Trasferimento dominio
 
Articolo numero: faq-125 Articolo numero: faq-125

Bloccare attacco Dos ad un sito web

Posted on 16-10-2011
 - By Admin

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.


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