ASP.NET MVC - wstrzykiwanie SQL

Spisie treści
Istnieje wiele rodzajów ataków, które możemy otrzymać w naszych aplikacjach, jednym z najczęstszych i który może generować duże szkody jest atak Wstrzyknięcie SQLAtak ten polega na znalezieniu luk w sposobie obsługi zapytań do baz danych w celu wydobycia informacji lub wstawienia wartości, które mogą wpłynąć na jego funkcjonalność.
Aby uchronić się przed tego typu atakiem, musimy najpierw wiedzieć, na czym on polega, w ten sposób możemy dowiedzieć się, jakie środki ostrożności musimy podjąć.
Jak wspomnieliśmy, ten atak sprawia, że ​​nasza baza danych nie działa poprawnie, w tym celu atakujący wprowadza dane, które powodują, że nasze zapytania zawodzą zgodnie z określonymi podatnościami, dzięki czemu atakujący może spróbować zdobądź schematy naszych tabel lub wprowadzić dane, które mogą zagrozić operacji, takie jak: wprowadź użytkownika, aby uzyskać dostęp do sekcji administracyjnej naszej aplikacji.
Jednym z najczęstszych sposobów jest to, że wprowadzamy parametry bezpośrednio tak, jak otrzymujemy je od kontrolerów, np. mamy wyszukiwanie po kategoriach i otrzymujemy od kontrolera identyfikator kategorii do przeszukania, jeśli przechodzi bezpośrednio bez czyszczenia może wygenerować atak, który pokaże atakującemu wszystkie istniejące kategorie.
Spójrzmy na następujący niezabezpieczony kod:

POWIĘKSZAĆ

Możemy zobaczyć, jak w linia 6 budujemy warunek wyszukiwania, a następnie w linia 10 Przekazujemy go bezpośrednio do metody budującej zapytanie, niedoświadczone oko może nie dostrzec problemu, ale jeśli atakujący wprowadzi następujący parametr: „1 lub 1 = 1” możesz uzyskać listę całego naszego stołu.
Jak się chronić?Sposób na zabezpieczenie się w tym przypadku składa się z dwóch podstawowych kroków, pierwszy jest to, że nie możemy pozwolić na wykonanie danych bezpośrednio tak, jak je otrzymujemy, w tym celu przed zapytaniem musimy wyczyścić parametr metodą wyszukującą niedozwolone znaki i w przypadku ich znalezienia wysłać użytkownika na stronę 404 lub Strona nie znaleziona.
Zobaczmy w poniższym kodzie, jak możemy filtrować to, co otrzymujemy:

Tutaj przeglądamy z zwykła fraza Niech tylko liczby będą tym, co otrzyma nasz kontroler, inaczej wyślemy wiadomość, każdy może zrobić swoją wersję, ale ważne jest, aby kontrolować, co otrzyma nasza aplikacja.
ten druga krokiem do uniknięcia ataków jest nie działa z symbolem wieloznacznym „*” i zawsze ograniczaj zapytania, gdy czekamy na rekord, w ten sposób unikamy ujawniania wszystkich danych w przypadku, gdy ktoś zdoła przekroczyć nasze prognozy.
Łap wyjątkiWreszcie, jeśli do naszej aplikacji dostanie się niedozwolony parametr, musimy za wszelką cenę uniknąć pojawienia się śladu błędu, ponieważ zawiera on poufne dane z naszej instalacji i może zostać użyty przeciwko nam, dlatego zawsze musimy upewnić się, że przechwyciliśmy wyjątki i wyślij spersonalizowaną wiadomość, która nie zawiera wielu szczegółów, ponieważ te szczegóły można zobaczyć w środowisku programistycznym.
Jak widzieliśmy, znajomość ataków daje nam inną perspektywę tego, w jaki sposób możemy chronić naszą aplikację i jak to zrobić, aby zapewnić naszym użytkownikom większe bezpieczeństwo.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave