Questo articolo presuppone che si stia lavorando su un tema child di WordPress in modo da non alterare file di sistema.
Per la creazione di un tema child, si può fare riferimento a questo articolo:
Personalizzare i temi di WordPress
Descrizione
Con questo metodo bloccheremo i tentativi di login dei bot alla nostra pagina di login, sfruttando la capacità dei browser di lavorare con contenuti mime gzip
Quello che faremo è creare un file di 10 Giga Byte che comprimeremo con gzip portandolo ad una dimensione più contenuta di 10 Mega Byte.
Utilizzando l’ hook di WordPress wp_login_failed invieremo questo file al browser che lo unzipperà in memoria esaurendo velocemente la ram, specialmente se i tentativi di accesso avvengono parallelamente con diverse connessioni.
Creaiamo il file
Nella home del sito wordpress digitiamo
1 |
# dd if=/dev/zero bs=1M count=10240 | gzip -9 > 10G.gzip |
Inserimento del codice
Nella directory del nostro tema child, editiamo il file functions.php inserendo queste righe PHP
Inseriamo l’hook che esegue la funzione send_gzip_bomb quando viene fallita la login
1 |
add_action( 'wp_login_failed', 'send_gzip_bomb' ); |
Questa è la funzione send_gzip_bomb
1 2 3 4 5 6 7 |
function send_gzip_bomb() { header("Content-Encoding: gzip"); header("Content-Length: " . filesize('10G.gzip')); if (ob_get_level()) ob_end_clean(); readfile('10G.gzip'); } |