PHP: Защита от частых обращений к сайту - F5
Не давно один мой знакомый показал мне один фокус как уложить сайт на лопатки или проще говоря как вывести сайт из строя, все оказалось довольно просто все что нужно это перейти на сайт жертвы и зажать на секунд 10 кнопку F5, тем самым происходит обновления страницы чаще чем раз в 1 секунду, из за таких частых обращений и ложится сервер, правда не на долго но все равно не приятно.Данная информация сразу заставила задуматься и принять экстренные меры :)
Не давно один мой знакомый показал мне один фокус как уложить сайт на лопатки!
или проще говоря как вывести сайт из строя, все оказалось довольно просто все что нужно это перейти на сайт жертвы и зажать на секунд 10 кнопку F5, тем самым происходит обновления страницы чаще чем раз в 1 секунду, из за таких частых обращений и ложится сервер, правда не на долго но все равно не приятно.
Данная информация сразу заставила задуматься и принять экстренные меры :)
Так был написан простенький, но эффективный скрипт на ограничение запросов к сайту.
#F5 session_start(); if(isset($_SESSION[session_id()]) AND (time()-$_SESSION[session_id()]) <= 1){ die('<html><head><meta http-equiv="Refresh" content="2" /><title>You have made too many requests per second.</title></head> <body><h1>You have made too many requests per second.</h1>Please, wait few seconds and refresh this page.</body></html>'); }else{$_SESSION[session_id()] = time();}
или еще вариация:
header('Content-Type: text/html;charset=UTF-8'); session_start(); $limit = 5; if(isset($_SESSION[session_id()]) AND (time()-$_SESSION[session_id()]) <= $limit) exit('Фууууу.. ддоссер.... кышь!'); else $_SESSION[session_id()] = time();