Я хотел бы защитить свой сервер от слишком большого количества атак ботов.
Рассмотрим сценарий, где сервер (физический) находится в частной сети и непрерывно обращается к моему серверу. Есть ли у меня механизм для идентификации сервера, стоящего за обращениями, скажем, по идентификатору браузера, если таковой имеется, и попытки ограничить доступ?
Когда машина/сервер запрашивает данные с веб-сайта, IP- и MAC-адреса перезаписываются, когда они проходят через маршрутизатор/балансировщик нагрузки. В идеале разработчики ботов должны убедиться, что их BOT находится за балансировщиком нагрузки, но должен быть способ найти физический адрес сервера или его MAC-адрес, поэтому я мог бы ограничить количество разрешенных обращений.
Или «Должен ли я масштабировать сервер и разрешить как можно больше транзакций» — это единственный/идеальный выбор, а не пытаться ограничить количество обращений? Учитывая сложность реализации такого алгоритма.
решение1
Установить fail2ban, настроить бот-джейлы. Все просто.
решение2
Если ваш брандмауэр является причиной того, что вы не видите адрес, вам придется иметь дело с брандмауэром, чтобы получить эту информацию. Вероятно, из журналов.
Я имел дело с очень загруженными публичными серверами. Есть несколько вещей, которые меня беспокоят (для начала):
- Убедитесь, что ваш сервер может это обработать (потому что это будет происходить всегда)
- Убедитесь, что ваш код может справиться с этим (эффективен/оптимизирован/интеллектуален)
- Временно блокировать IP-адреса, которые нарушают правила
Если это не сработает, проявите больше изобретательности.