Obsah
Existuje mnoho typů útoků, které můžeme v našich aplikacích přijímat, jeden z nejběžnějších, který může generovat velké množství škod, je SQL InjectionTento útok spočívá v hledání zranitelností ve způsobu, jakým zpracováváme dotazy proti databázím za účelem extrahování informací nebo vkládání hodnot, které mohou ovlivnit jeho funkčnost.Abychom se chránili před tímto typem útoku, musíme nejprve vědět, z čeho se skládá, abychom se mohli naučit, jaký typ opatření musíme přijmout.
Jak jsme zmínili, tento útok způsobí, že naše databáze nebude správně fungovat, a proto útočník zavádí data, díky nimž naše dotazy selhávají podle určitých zranitelností, což může útočník zkusit získejte schémata našich tabulek nebo zadejte data, která mohou ohrozit provoz, jako např zadejte uživatele pro přístup do administrativní části naší aplikace.
Jedním z nejběžnějších způsobů je, že zadáváme parametry přímo, jak je přijímáme z řadičů, například máme vyhledávání podle kategorií a od ovladače dostáváme identifikátor kategorie, která má být prohledávána, pokud prochází přímo bez vyčištění může generovat útok, který útočníkovi ukáže všechny existující kategorie.
Podívejme se na následující nezabezpečený kód:
ZVĚTŠIT
Jak se chránit?Způsob, jak se v tomto případě chránit, prochází dvěma základními kroky První je, že nemůžeme dovolit, aby byla data prováděna přímo, jak je přijímáme, proto před dotazem musíme parametr vyčistit metodou, která hledá neplatné znaky a v případě jejich nalezení pošle uživatele na stránku 404 nebo Stránka nenalezena.
Podívejme se v následujícím kódu, jak můžeme filtrovat, co dostáváme:
The druhý krok k zamezení útoků je nepracujte se zástupným znakem „*“ a vždy omezit dotazy, když čekáme na záznam, tímto způsobem se vyhneme odhalení všech dat v případě, že se někomu podaří překročit naše prognózy.
Chytit výjimkyKonečně, pokud do naší aplikace vstoupí nelegální parametr, musíme se za každou cenu vyvarovat toho, aby se objevila stopa chyby, protože obsahuje citlivá data z naší instalace a může být použita proti nám, proto se musíme vždy ujistit, že zachytíme výjimky a odešlete personalizovanou zprávu, která neobsahuje mnoho podrobností, protože tyto detaily lze vidět ve vývojovém prostředí.
Jak jsme viděli, znalost útoků nám dává jiný pohled na to, jak můžeme chránit naši aplikaci a jak postupovat, abychom našim uživatelům poskytli větší zabezpečení.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod