Back to questions
Junior — Middle
59
Какими способами можно предотвратить или снизить влияние атак типа отказ в обслуживании (DoS)?
Answer from AI
sobes.tech AI
Для предотвращения или снижения влияния DoS-атак можно использовать следующие методы:
- Фильтрация трафика: блокировка подозрительных IP-адресов или географических регионов.
- Ограничение количества запросов (rate limiting): ограничение числа запросов от одного клиента за определённый промежуток времени.
- Использование CDN и балансировщиков нагрузки: распределение нагрузки между серверами, что снижает эффект атаки.
- Аутентификация и капчи: проверка, что запросы идут от реальных пользователей.
- Мониторинг и алерты: своевременное обнаружение аномалий в трафике.
- Резервирование ресурсов: выделение дополнительных ресурсов для обработки пиковых нагрузок.
Пример простого rate limiting на Python с использованием Flask и библиотеки Flask-Limiter:
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
limiter = Limiter(app, key_func=get_remote_address)
@app.route("/")
@limiter.limit("5 per minute") # не более 5 запросов в минуту с одного IP
def index():
return "Hello, world!"
if __name__ == "__main__":
app.run()
Это помогает снизить нагрузку от злоумышленников, пытающихся перегрузить сервис.