Názor k článku Zranitelnosti typu injekce: SQL injekce od Pavel Stěhule - Také jsem se setkal s tím, že MySQL...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 10. 2018 22:59

    Pavel Stěhule

    Také jsem se setkal s tím, že MySQL aplikace měly nastavené špatné kódování - v 90 letech to byl standard.

    Dneska už bych ale očekával, že všichni pojedou na UTF8 - 8bit kódování používá jen pár veteránů a dožívající aplikace.

    Vtip je ale v tom, že pokud použijete pro escape funkce driveru, tak je úplně jedno, jestli má klient dobře nebo špatně nastavené kódování. Driver zná kódování serveru a nepošle mu nic, co by server zmátlo. Tedy můžete tam poslat nějaké paznaky, které nebudou sedět, ale escape z driveru vždy zajistí sanitizaci nebezpečných znaků, které by měly specifický význam v kódování použitém na serveru.

    Přiznám se, že nesouhlasím s tím, jak se tu argumentuje, že escape je problém pro slabší programátory. Podobný problém je i s PS - jen není na straně security, ale na straně performance. Což je o něco menší zlo. Na druhou stranu, vývojářů, kteří pochopí jak správně escapovat bude drtivě víc než vývojářů, kteří pochopí v čem může být problém s PS.

    V ani jednom případu se ale nejedná o jadernou fyziku - a kdo tyhle základní techniky nepochopí, tak by neměl profesionálně programovat. Aplikační programování je samo o sobě většinou technologicky jednoduchá záležitost - komplikace jsou spíš v aplikační doméně, nicméně měla by být nastavená nějaká minimální laťka.