NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
David Bubenik:4.10.2017 9:28

Na jedné stránce (csgo500.com) jsem si všiml zajímavé ochrany proti spamu. Když pošlete POST nebo GET request na server tak vám server odpoví hned. Pokud mu pošlete 100 požadavků ve stejnou chvíli tak dostanete stále jen jeden za sekundu. Jak tohoto dosáhnout v PHP? Už jsem se ptal na stackoverflow ale dostal jsem downvote a nikdo neodpověděl :) (Jak typický)

Odpovědět
4.10.2017 9:28
Hardware je to, do čeho můžež kopnout, když nefunguje software.
Avatar
Odpovídá na David Bubenik
Neaktivní uživatel:4.10.2017 10:18

Debounce
To je můj názor. Je to obecná technika.
V tomhle případě asi jednoduše implementovatelná jako:

  1. Mám route handler funkci, nebo třídu, co chceš.
  2. Ten handler obalím debounce funkcí s parametrem 1 sekundy. Jednoduše tak, že udělám
let debouncedHandler = debounce(originalHandler, 1000)

Tohle je pseudokod, jen pro ilustraci.
3. Pak debouncedHandler zaregistruju jako handler dané routy.

Jak se to chová? Ona funkce debounce vrací novou funkci, která, když je zavolána, spustí odpočítávání timeru dle tvého limitu. Pokud v daném intervalu nezavoláš funkci znovu, je tato zavolána. Pokud zavoláš znovu v intervalu do 1000ms od předešlého zavolání, původní invokace se zruší a jede se stejným způsobem znovu s tímto voláním.

Jak to udělat v php, pokud používáš Apache a tvoje handlery jsou jenom soubory nevím, ale když progooglujes 'php Apache debounce' asi ti to něco najde.

Psáno na mobilu.

Editováno 4.10.2017 10:21
Nahoru Odpovědět
4.10.2017 10:18
Neaktivní uživatelský účet
Avatar
David Bubenik:4.10.2017 11:07

No z toho moc chytrý nejsem :D Ale i tak díky pogooglim to :D

Nahoru Odpovědět
4.10.2017 11:07
Hardware je to, do čeho můžež kopnout, když nefunguje software.
Avatar
Odpovídá na David Bubenik
Neaktivní uživatel:4.10.2017 11:21

Klidně se ještě zeptej a používej prosím tlačítko odpovědět.

Nahoru Odpovědět
4.10.2017 11:21
Neaktivní uživatelský účet
Avatar
Jirka Jr
Člen
Avatar
Odpovídá na David Bubenik
Jirka Jr:4.10.2017 16:21

tady to nekomu na stackoverflow vyšlo :-)

https://stackoverflow.com/…s-per-second

ale je to přes apache modul, ne php

 
Nahoru Odpovědět
4.10.2017 16:21
Avatar
Odpovídá na Jirka Jr
David Bubenik:4.10.2017 19:09

Tyjo super, to by asi slo vyzkousim to a uvidim jestli to umi to co potrebuju. Chci to totiz aby mel 1 dotaz za sekundu kazdy uzivatel a zaroven aby mohl ty requesty davat do fronty.

Nahoru Odpovědět
4.10.2017 19:09
Hardware je to, do čeho můžež kopnout, když nefunguje software.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.