ASP.NET MVC - SQL-Injection

Inhaltsverzeichnis
Es gibt viele Arten von Angriffen, die wir in unseren Anwendungen erhalten können, eine der häufigsten und die einen großen Schaden anrichten kann, ist die SQL-InjektionDieser Angriff besteht darin, Schwachstellen in der Art und Weise zu finden, wie wir Abfragen an Datenbanken verarbeiten, um Informationen zu extrahieren oder Werte einzufügen, die die Funktionalität beeinträchtigen können.
Um uns gegen diese Art von Angriff zu schützen, müssen wir zunächst wissen, woraus sie besteht, damit wir lernen, welche Vorkehrungen wir treffen müssen.
Wie bereits erwähnt, führt dieser Angriff dazu, dass unsere Datenbank nicht richtig funktioniert, dafür führt der Angreifer Daten ein, die unsere Abfragen nach bestimmten Sicherheitslücken fehlschlagen lassen, mit denen der Angreifer es versuchen kann Holen Sie sich die Schaltpläne unserer Tabellen oder geben Sie Daten ein, die den Betrieb beeinträchtigen könnten, wie z Geben Sie einen Benutzer ein, um auf den Verwaltungsbereich unserer Anwendung zuzugreifen.
Eine der gebräuchlichsten Methoden besteht darin, dass wir Parameter direkt eingeben, wenn wir sie von den Controllern erhalten, zum Beispiel haben wir eine Suche nach Kategorien und wir erhalten vom Controller die Kennung einer zu durchsuchenden Kategorie, wenn sie direkt passiert, ohne sie zu bereinigen kann einen Angriff generieren, der dem Angreifer alle vorhandenen Kategorien anzeigt.
Schauen wir uns den folgenden unsicheren Code an:

VERGRÖSSERN

Wir können sehen, wie in der Zeile 6 wir bauen die Suchbedingung auf und dann im Linie 10 Wir übergeben es direkt an die Methode, die die Abfrage erstellt, ein unerfahrenes Auge sieht möglicherweise kein Problem, aber wenn ein Angreifer den folgenden Parameter eingibt: "1 oder 1 = 1" Sie könnten die Auflistung unserer gesamten Tabelle erhalten.
Wie können wir uns schützen?Der Weg, uns in diesem Fall zu schützen, geht über zwei grundlegende Schritte, die erste ist, dass wir nicht zulassen können, dass Daten direkt ausgeführt werden, wie wir sie erhalten. Dazu müssen wir vor der Abfrage den Parameter mit einer Methode bereinigen, die nach illegalen Zeichen sucht und den Benutzer im Falle der Suche auf eine 404-Seite weiterleiten oder Seite nicht gefunden.
Sehen wir uns im folgenden Code an, wie wir filtern können, was wir erhalten:

Hier überprüfen wir mit a regulärer Satz Lassen Sie nur Zahlen sein, was unser Controller empfängt, sonst senden wir eine Nachricht, jeder kann seine Version erstellen, aber das Wichtigste ist, zu kontrollieren, was unsere Anwendung empfängt.
Das zweite Schritt zur Vermeidung von Angriffen ist nicht mit dem Platzhalter "*" arbeiten und begrenzen Sie immer die Abfragen, wenn wir auf einen Datensatz warten. Auf diese Weise vermeiden wir, dass alle Daten preisgegeben werden, falls es jemandem gelingt, unsere Prognosen zu übertreffen.
Ausnahmen einfangenWenn schließlich ein illegaler Parameter in unsere Anwendung eindringt, müssen wir um jeden Preis vermeiden, dass eine Spur des Fehlers herauskommt, da er sensible Daten aus unserer Installation enthält und gegen uns verwendet werden kann, daher müssen wir immer sicherstellen, dass die Ausnahmen und senden Sie eine personalisierte Nachricht, die nicht viele Details enthält, da diese Details in der Entwicklungsumgebung sichtbar sind.
Wie wir sehen konnten, gibt uns die Kenntnis der Angriffe eine andere Perspektive, wie wir unsere Anwendung schützen können und wie wir unseren Benutzern mehr Sicherheit bieten können.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave