Hello Дмитрий,
1. Настроить систему так как было прекрасно описано
"Настройка FreeBSD для обслуживания 100-200 тысяч соединений." (C) Игорь
Сысоев
2. Методика редиректов.
CLIENT --- [URI] ---> SERVER
SERVER --- [URI]+[SECURITY CODE] (HTTP 307 CODE) --> CLIENT
CLIENT --- [URI]+[SECURITY CODE] ---> SERVER
SERVER --- [URI] (HTTP 307 CODE) ---> CLIENT
Пример работы:
1. [ЗАПРОС]
GET / HTTP/1.1
Host: www.xxx.com
2. [ОТВЕТ]
HTTP/1.1 307
Location: http://www.xxx.com/?code=ABCDEFGHIJKLMNOPQ
3. [ЗАПРОС]
GET /?code=ABCDEFGHIJKLMNOPQ HTTP/1.1
Host: www.xxx.com
4. [ОТВЕТ]
HTTP/1.1 307
Location: http://www.xxx.com/
5. [ЗАПРОС]
GET / HTTP/1.1
Host: www.xxx.com
6. [ОТВЕТ]
HTTP/1.1 200
DATA
Соответственно, мы должны иметь таблицу соответствия кодов и ип
адресов авторизированных клиентов.
Если клиенты проходят авторизацию, стоит добавлять их в разрешающий
список и не применять к ним защиту на протяжении некоторого
времени.
Процесс редиректа, шаги 2-3, можно повторять случайно количество
раз, но не стоит делать больше 5-6 раз.
Реализация этого метода на PHP не поможет, как и других скриптовых
языках. Лучше всего создавать модуль к nginx.
P.S. Последние встреченные мною ботнеты, обходят подобную защиту, и
легко поддерживают все виды HTTP 3xx редиректов.
--
Best regards,
lethality mailto:lethality@xxxxxxxxx