Také jsem to nenašel.
V praxi jsem došel k tomu, že je potřeba segregovat služby, které je potřeba chránit od těch, kde mohou být pravidla volnější. Např. u formulářů je vhodné kontrolovat obsah dotazu i odpovědi. Na druhou stranu nemá smysl provádět sofistikované kontroly tam, kde odesíláte downloadované soubory, obrázky atp. (Na uploadovaných zase většinou ano). To v praxi naráží na jednoduchý vývoj aplikací, kdy v jednom document rootu je vše, upload, download, obsah, texty atd. - ale u těchto aplikací se zase nepočítá s vysokou zátěží a hledisko výkonu není tak důležité.
Celkově modsecurity funguje dobře, žádný drastický úbytek výkonu se nekoná.
Já jsem i našel, ale nestudoval jsem jak se to měřilo a podobně a trošku mne ta čísla vystrašila třeba tady https://github.com/defanator/modsecurity-performance/wiki a viděl jsem i u dalších grafy který mi připadali ještě horší
latence (přeložil jsem si jako doba zprcování požadavku) bez ~7.4ms s plným setem pravidel ~778ms, úplně jsem si vzpoměl jak mi naposledy marketák říkal, "Co se nenačte do vteřiny, odtamtud lidi odcházejí" a pak vlezl na FB a čekal 5 vteřin než se mu načetl :-D. Z ~100 000 requestů na ~800
To mi přijde jako slušnej zabiják výkonu :-D Asi se to pak musí komezovat nějakou předřazenou cache,..
Záleží na rulesetech, na tom, jestli zkoumáte data jen jedním směrem nebo oběma a kolik dat necháváte projet. Dával jsem nahoře odkazy na docela dobré rulesety. Taky proto jsem mluvil o segregaci obsahu, protože se hodí mít důkladnější kontrolu např. na formulářích a méně důkladnou u posílání binárních (a už prověřených) dat.
Správně fungující webový aplikační firewall nemá na výkon aplikace žádný vliv – můžete ho mít klidně na samostatném zařízení, které může třeba zároveň fungovat jako loadbalancer, tj. k aplikaci se dostanou jen čisté požadavky. Samozřejmě pokud bude WAF nad každým požadavkem vteřinu dumat, na odezvě aplikace to hned poznáte.