ASP.NET MVC - SQL Injection

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

Můžeme vidět, jak v řádek 6 stavíme podmínku hledání a poté v řádek 10 Předáme to přímo metodě, která vytváří dotaz, nezkušené oko nemusí vidět žádný problém, ale pokud útočník zadá následující parametr: „1 nebo 1 = 1“ můžete získat výpis celé naší tabulky.
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:

Zde kontrolujeme pomocí a pravidelná fráze Necháme přijímat pouze čísla, jinak pošleme zprávu, každý si může vytvořit svoji verzi, ale důležité je řídit, co naše aplikace dostane.
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

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave