Autor | Zpráva | ||
---|---|---|---|
Tatranieux Profil * |
#1 · Zasláno: 25. 8. 2022, 10:32:01
Zdravím,
je nějaká možnost, jak v .htaccess mít pravidlo pro odfiltrování různých sql injection částí v url? Např. /neco/if(now()=sysdate(),sleep(15),0) nebo /neco/'%20AND%202*3*8=6*8%20AND%20'jHxu'='jHxu? Třeba pravidlo, kterým by se url se závorkama, apostrofama atd. přesměrovaly na hlavní stránku (příp. 404). Aktuálně mi takové url hází 503. Případně existuje jiná ochrana? Dík. |
||
anonym_ Profil * |
#2 · Zasláno: 25. 8. 2022, 10:34:03
Tatranieux:
„Případně existuje jiná ochrana?“ Ano, řešením je ošetřovat vstupy na úrovni DB, příp. to nechat na nějakké databázové vrstvě. Závorka v URL ničemu nevadí, nebezpečné jsou tvé nezabezpečené SQL dotazy. |
||
Tatranieux Profil * |
#3 · Zasláno: 25. 8. 2022, 11:08:14
Na úrovni DB, resp. PHP, to ošetřené mám přes strip_tags, mysqli_real_escape_string atd.
Mně jde o pravidlo v .htaccess. |
||
anonym_ Profil * |
#4 · Zasláno: 25. 8. 2022, 12:33:13
Tatranieux:
Psal jsi o sql injection. Ta se v htaccess neřeší. Jinak to, co hledas, je obyc. regular kontroluji i ty závorky, atd. Zkus a vrat se, pokud nebudeš vědet, jak dále. |
||
juriad Profil |
#5 · Zasláno: 25. 8. 2022, 12:57:22
I kdybys takto vyřešil GET, nevyřešíš tím odesílání formulářů pomocí POST.
Jediným správným řešením je ošetření vstupu na každém místě zvlášť podle kontextu. Jinak budeš ošetřovat boolean/číslo/řetězec/datum v SQL, jinak při generování HTML nebo JSON. Nepřemýšlej o tom jako o útoku nějakého hackera, ale naopak jako o své hrdosti, že aplikace se bude chovat správně za každé situace. To nejsou případy, které můžeš vyřešit později. Kvalitní programátor se nepozná podle rychlosti vývoje, ale spíše podle spolehlivosti kódu. Escapování na každém místě stojí čas a je náchylné na chyby (záměrné: "adresa nikdy nebude obsahovat tento znak" i nechtěné), proto máme mnoho knihoven, které escapování řeší za nás. Používej něco modernějšího než nativní mysqli. Už se v PHP několik let nepohybuji, ale tehdy bývala oblíbená knihovna github.com/dg/dibi Osobně neznám moc důvodů používat strip_tags - to zavání tím, že se snažíš o nějaké univerzální escapování. Pokud uživatel chce napsat něco se špičatými závorkami, tak mu ty špičaté závorky ulož a zobraz. Pokud špičaté závorky jsou zakázané - například v emailové adrese, proveď validaci, uživateli ukaž chybu a nesnaž se za uživatele opravovat to, co napsal. |
||
Časová prodleva: 3 roky
|
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.
Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:
Běda vám, jestli to bude blábol.
0