Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: vesterna12 26. 02. 2023, 13:32:09

Název: Python SQL: validace vstupu obsahující speciální znaky
Přispěvatel: vesterna12 26. 02. 2023, 13:32:09
Do databáze [textové pole] potřebuji být schopný uložit všechny speciální znaky, které lze použít pro SQL injection.
Jak správně ošetřit takový vstup při použití "prepared statements" ? 
Název: Re:Python SQL: validace vstupu obsahující speciální znaky
Přispěvatel: Filip Jirsák 26. 02. 2023, 13:51:44
Důležité je použít binding hodnot, který bývá obvykle s prepared statements spojen. Tj. v SQL dotazu jsou místo hodnot zástupné znaky (často otazník) a pomocí propojení (bind) se pak před spuštěním dotazu propojí tyto zástupné parametry se skutečnými hodnotami. O to, aby to proběhlo správně, se postará databázový ovladač nebo samotná databáze.

Vy pak vstup žádným způsobem neošetřujete, prostě předáte vstup od uživatele tak, jak byl zadán.

Pokoušet se to řešit jinak, než bindováním, např. nějaké escapování vstupu, je bláhové, a s největší pravděpodobností by se vám nepodařilo ošetřit to správně (a hlavně nikdy nebudete míst jistotu, že je to správně).
Název: Re:Python SQL: validace vstupu obsahující speciální znaky
Přispěvatel: vesterna12 26. 02. 2023, 14:12:20
Díky. To mi stačí.