Jak lze v nette zabranit ddos utokum
- tomasde
- Člen | 26
Mam pocit ze nekdo skousi na muj web ddos utoky.
Nette mi vyhazuje chybu
Nette\Database\ConnectionException: SQLSTATE[08004] [1040] Too many connections #08004
Coz si myslim ze muze zpusobovat ddos utok. Nekdo v loopu proste vola
stranku
Koukal jsem i na adressy jake vola. Utocnik si mysli, ze mam shitackej
nebezpecnej wordpress, protoze ty adresy jsou wp_......php
________
Mam zmerit cas nekam ulozit a kazdymu navstevnikovy dat min cas a max pocet
refreshu za sec ?
Normalni uzivatel asi nebude volat stranku 3-vice krat za sec. Takze kdyz by
k teto podmince doslo, tak by mu to vyhodilo 429.
Editoval tomasde (6. 4. 23:21)
- tomasde
- Člen | 26
udelal jsem limit 10 reqestu za sec
Snad to bude fakcit hodil jsem to do basePresenteru
I kdyz mi to jako dobre rereni moc neprijde to neustaly zapisovani do cache pri
kazdym requestu :-(
private function rateLimiter($maxRequests = 10, $timeFrame = 60): void {
$request = $this->getHttpRequest();
$ipAddress = $request->getRemoteAddress();
$cacheKey = 'rate_' . md5($ipAddress);
// Získáme počet požadavků za poslední časové okno
$requestCount = $this->cache->load($cacheKey);
if ($requestCount === null) {
$this->cache->save($cacheKey, 1, [
'expire' => '+' . $timeFrame . ' seconds'
]);
} else {
if ($requestCount >= $maxRequests) {
$this->error('Too many requests, please try again later.',\Nette\Http\IResponse::S429_TooManyRequests);
}
$this->cache->save($cacheKey, $requestCount + 1, [
'expire' => '+' . $this->timeFrame . ' seconds'
]);
}
}
- Kamil Valenta
- Člen | 844
Přesně tak, pokud v cestě není balancer, pro Apache je např. mod_evasive. Jinak 10 requestů za sec. je hodně málo. To snadno „vyžere“ ajaxová stránka. O to snadněji, když kdejaký větší subjekt / firma / obec je schovaná za jednou společnou IP…
- tomasde
- Člen | 26
Diky ale mod_evasive a naky extra veci na sdilenym hostingu absolutne nehrozi. Kdysi to byval jeden z nejlepsich hostingu. Dneska je to absolutne neauktualizovana sr… Akorad pridaj novou verzi php a nazdar. Je tam jen php, mysql, mail,ftp a nazdar. Zadny extra nastavovani ani neni povoleny, nebo naky extra veci navic. Uz kdybych chtel pridat rozsireni do php tak nehrozi. Nemuzu prechazet jinam, protoze mam na tom servru tolik webu a emailu, ze proste prechod jinam je nemozny. Dokonce tam mam weby ktere jsem nekomu kdysi delal a porad bezi. Proste sem jen prikoupil domenu.
Editoval tomasde (7. 4. 11:54)
- Kamil Valenta
- Člen | 844
tomasde napsal(a):
Diky ale mod_evasive a naky extra veci na sdilenym hostingu absolutne nehrozi.
Jak už bylo řečeno, můžeš do cesty strčit Cloudflare a odfiltrovat to tam. Je to jen změna v DNS.
Nemuzu prechazet jinam, protoze mam na tom servru tolik webu a emailu, ze proste prechod jinam je nemozny.
Vždy existuje cesta. I kdybys kopíroval 10 webů za den, tisíce jich tam přece nemáš. V dnešní době není sebemenší důvod zůstávat u hostera se špatnými službami.
- tomasde
- Člen | 26
To Hrach: Me ta cloudflare prijde otravna. Kdyz jdu nekam na stranky a objevi
se tam tohle a musis cekat nez se to vypi..uje. A zakazniky to 100% odradi
protoze netusi co to je a vyvola to v nich pocit ze je stranka nefunkcni,
hackla nebo zaskodnicka. Ja se snazim vyhejbat vsem otravnejm vecem na
strankach. Tj reklamy, vyskakovaci hovadiny, cookie dotazovaci nesmysl.....
Udelal jsem jen takovej malinkej prouzicek dole na strankach aby je to
neobtezovalo a byrokraticka zk.. eu byla spokojena a nevopruzovala.
Me osobne vsechny tyhle otravny veci na strankach stvou, proto tim nechci
otravovat a odrazovat svoje zakazniky.
Vyresil jsem to tak, chvilku jsem si monitoroval adresy na jaky utoci. Bud
maj predponu wp_ nebo jsou i jine. Ale vzdy konci .php
Takze sem .php zablokoval v htaccess
RewriteCond %{THE_REQUEST} \.php[\s?] [NC]
RewriteRule ^ - [F]
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot|Sogou|YandexBot|crawler|spider|HTTrack|Python-urllib|curl|wget) [NC]
RewriteRule ^ - [F,L]
Pro jistotu i naky boty a je klid.
Editoval tomasde (9. 4. 15:55)
- Felix
- Nette Core | 1270
Trochu se ztracim, resime DDOS? Jakoze fakt DDOS a nebo, ze tam prijde sem tam nejaky bot? Protoze jestli to ma byt ochrana proti DDOS, tak Cloudflare dava smysl, at to uzivatele otravuje nebo ne. Btw, nemam pocit, ze by me to nekdy otravovalo a neco na me skakalo. Pokud je lepsi aby web spadnul, protoze to nahodou nekoho otravuje, tak je to jina debata a od zacatku se snazim pomoct s necim co ti @tommasde prijde zbytecny.
- hrach
- Člen | 1844
@tomasde:
- ale to jsi na omylu, CF tak nefunguje by default. Je tam nekolik urovni a to, co popisujes, tak to je nejpravdepodobneji to, ze si zapnul uroven ze jsi pod utokem. Normalni ochrana CF je absolutne neviditelna.
- dal maji featuru, ktera pousti omezene lidi na web – opet, nesouvisi s ochranou pred boty a ddosem
- a co se tyka reklam, tak to mluvis o necem uplne jinem;