Se hai trovato un bug, per favore segnalalo nel rapporto di problema.
Sì, è possibile limitare il numero di sessioni solo per una pagina specifica. Tuttavia, è necessario prima disattivare l'opzione "Limite sessioni online" nel pannello del firewall, poiché la sua portata è globale e non può essere utilizzata nello stesso gruppo di dati.
Dopo aver disattivato il "Limite sessioni online", è possibile utilizzare l'API pubblica di Shieldon. Ad esempio, considera il seguente codice:
if (strpos($_SERVER['REQUEST_URI'], 'faq/online-session-limit.html') !== false) {
$firewall->getKernel()->limitSession(5, 300);
}
Questa pagina limita il numero massimo di utenti a 5, consentendo a ciascun utente di visualizzare la pagina per 300 secondi.
Quando un utente accede a questa pagina e il numero di utenti raggiunge il limite, verrà visualizzato un dialogo simile alla seguente schermata:
Non ho incluso la funzionalità "Blocca tutto" nel pannello del firewall per evitare che alcune persone blocchino tutti gli indirizzi IP associati all'URL /. Ciò bloccherebbe tutti gli URL, compreso l'accesso al pannello del firewall. Invece, ti consiglio di utilizzare il gestore IP e configurare un range IP specifico secondo necessità.
Se desideri bloccare tutti gli indirizzi IP per un URL specifico, il seguente codice ti aiuterà:
// Inserisci questo codice prima di $firewall->run();
if (strpos($_SERVER['REQUEST_URI'], 'example/block-all.html') !== false) {
$firewall->getKernel()->getComponent('Ip')->denyAll();
}
Questa è una pagina di esempio che blocca tutti gli indirizzi IP che cercano di accedervi.
Quando un utente viene bloccato, si troverà di fronte a un dialogo simile alla schermata seguente.
Avvertenza: Se fai clic su questo link di esempio, sarai bloccato e non potrai accedere a questo sito web. Dovrai attendere 60 minuti prima che il blocco venga revocato.
Il nome utente predefinito è shieldon_user
e la password è shieldon_pass
. Dopo aver effettuato l'accesso al pannello del firewall, la prima cosa da fare è cambiare il nome utente e la password.
Per gli attacchi DDoS di piccole dimensioni di tipo HTTP, la mia risposta è SI, ma lo scenario reale può dipendere da molti fattori come la larghezza di banda, la qualità dell'hardware, le impostazioni di sistema, la qualità del codice, ecc.
Consideriamo un esempio semplice. Supponiamo che il tuo sito web abbia una dimensione media di pagina di 3 MB e il tuo server abbia una larghezza di banda di 100 Mbps. Il tuo server può gestire un tasso di dati di circa 12,5 MB/s
. Se qualcuno decidesse di attaccare il tuo sito web in modo malevolo, quanti fonti di attacco pensi che sarebbero necessarie per sovraccaricare il tuo server? Questo non tiene nemmeno conto del possibile carico sulle connessioni MySQL.
Il firewall Shieldon interrompe queste connessioni maliziose, restituendo una pagina CAPTCHA di dimensioni inferiori a 50 KB. Interrompe l'esecuzione dei script PHP, prevenendo ulteriori connessioni MySQL. In questo modo, il firewall Shieldon può risparmiare memoria e utilizzo della CPU quando il tuo sito web viene attaccato. Tuttavia, questa è semplicemente una strategia di mitigazione per gli attacchi DDoS di tipo HTTP, non una soluzione definitiva.