Sobes.tech
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()

Это помогает снизить нагрузку от злоумышленников, пытающихся перегрузить сервис.