Odpověď na názor
Odpovídáte na názor k článku Na podceňovanou hrozbu SQL injection doplácí i řada českých webů.
Re: Hrubě nesouhlasím s prvním odstavcem
celé vlákno1. Každý uživatel se musí přihlásit k databázi. Buďto pomocí SQL klienta (jen hypotetická možnost, DB server si povídá jen s několika málo IP adresami) nebo prostřednictvím webové aplikace. V každém případě zadané přihlašovací údaje slouží k přihlášení k DB serveru. Tedy ne že by se webová aplikace přihlásila sama jako superuser a pak ověřovala údaje.
2. Jakmile jste přihlášení pomoci SQL klienta, můžete si spustit co chcete. Nastavení práv v DB ohlídá na co přístup máte a na co nikoliv. Stejně tak jakmile se přihlásíte přes webovou aplikaci, můžete pomocí SQL injection (nedělám si iluze, že by naše webová aplikace byla 100% bullet proof) spoštět taky prakticky jakékoliv SQL příkazy. Ale opět vás ohlídá nastavení práv v DB serveru.
Jak to tak po sobě čtu, možná už vím kde je zakopán pes. Výrazem "dělat si tam co chce a číst co chce" jsem mínil "pokusit se dělat si tam co chce a číst co chce, ale DB server mu dovolí jen to, na co má práva". Jinak řečeno, propašování SQL příkazu až na server nepředstavuje žádné vážné bezpečnostní riziko, protože vás vždy bude kontrolovat samotný DB server, který to umí mnohem lépe než webová aplikace.
Každopádně se vzdalujeme od toho, co jsem napadal - tvrdím (v rozporu s autorem článku), že prolomení webového rozhraní skrze SQL injection nemusí znamenat prolomení bezpečnosti celé aplikace.
Nepochybuji o tom, že SQL injection je praktický problém s dopadem na každého z nás. Kdybych měl však připodobnit tento článek k něčemu, co bude možná více srozumitelné, přirovnal bych webovou aplikaci k shellu, pomocí kterého uživatelé spouští své příkazy. Tento shell běží obvykle pod rootem. Článek tvrdí, že proto by autoři shellu měli ošetřovat jaké příkazy dovolí spustit a bránili se vynalézavosti uživatelů. A já mu oponuji tím, že dalším řešením je, aby ten shell vůbec neběžel s rootovskými právy.
Pravidla pro diskutující
Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s tím, že budete dodržovat následující pravidla. Při jejich hrubém porušení se vystavujete riziku smazání příspěvku, jeho modifikaci, v krajním případě i zablokování přístupu do diskusí.
Redakce ze zásady nezasahuje do čtenářských diskusí a zavazuje se, že nebude mazat ani modifikovat příspěvky, kromě případů, kdy tyto porušují některé z následujících pravidel. V takové situaci je na zvážení redakce, zda příspěvek modifikuje s viditelným upozorněním, či přímo smaže. Redakce nikdy nemaže „nesouhlasné komentáře“ jen proto, že jsou nesouhlasné. Vítáme střet názorů, ale vždy v rámci slušné a kultivované debaty.
Příspěvky nesmí obsahovat:
- Vulgární či hrubé výrazy.
- Urážlivé výroky na adresu druhé osoby či skupiny osob.
- Texty, které mají za cíl jen vyprovokovat emotivní reakci (trolling).
- Rasové útoky či útoky na jakoukoliv jinou menšinu či skupinu obyvatel.
- Komerční nabídky a affiliate odkazy.
- Odkazy na warez, sériová čísla, licenční kódy, pornografii a další nevhodný materiál stejně jako žádosti o poskytnutí tohoto obsahu.
- Prokazatelně protiprávní obsah.
Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.
Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul