TGViewer
Linux Education Linux Education @linux_education · 11.1K subscribers
Post #2185 2.03K
🖥 Как случайно сделать DDoS своим же кодом

Как случайно устроить DDoS самому себе - самый частый сценарий это когда ты запускаешь 1000 запросов параллельно и думаешь, что ускоряешься, а на деле убиваешь свой же сервис или сайт.

Что ломает всё быстрее всего:

Нет лимитов на конкурентность - корутины или потоки плодятся бесконечно

Нет пула соединений - каждый запрос создаёт новый коннект и душит сеть

Нет таймаутов - зависшие запросы копятся и съедают ресурсы

Нет ретраев с backoff - ты усиливаешь нагрузку, когда системе и так плохо

Нет rate limit - ты сам становишься источником перегруза

Правильная база - всегда ограничивай параллелизм семафором, используй один клиент с пулом, ставь таймауты и делай аккуратные ретраи.


import asyncio
import httpx

URLS = ["https://example.com"] * 500

async def fetch(client, sem, url):
async with sem: # лимит конкурентности
r = await client.get(url, timeout=10.0)
return r.status_code

async def main():
sem = asyncio.Semaphore(20) # не больше 20 запросов одновременно
limits = httpx.Limits(max_connections=50, max_keepalive_connections=20)
async with httpx.AsyncClient(limits=limits) as client: # пул соединений
tasks = [fetch(client, sem, u) for u in URLS]
results = await asyncio.gather(*tasks, return_exceptions=True)
print("done:", len(results))

asyncio.run(main())

@linux_education
  • 🔥 2
  • 👍 1
More from @linux_education
  1. Oct 18, 2026Post #2863
  2. Oct 17, 2026🗝 Claude разгадал 26-летнюю загадку криптографии за 30 минут Когда АНБ передало числа, из…
  3. Oct 17, 2026Post #2861
  4. Oct 17, 2026@linux_education
  5. Oct 17, 2026Post #2859
  6. Oct 17, 2026‍🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем каже…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →