News
Serverspace Technologien in den VAE: Einführung von Falconcloud
RF
30. Mai 2023
Aktualisiert Juni 30, 2023

Schutz von a Linux Datenbank aus SQL-Injection

Datenbanken Debian Netzwerke

Machen Sie sich mit den Grundlagen der Webanwendungssicherheit vertraut und erfahren Sie, wie Sie Angriffe auf Ihre Datenbanken verhindern. Im Rahmen der Schulung erlernen Sie die Fähigkeiten zum Auffinden von Schwachstellen und lernen, wie Sie verschiedene Schutzmethoden gegen diese Art von Angriffen anwenden, um die Sicherheit Ihrer Anwendungen zu gewährleisten.

SQL

SQL (Structured Query Language) ist eine Sprache, die strenge Syntaxregeln bei der Abfrageerstellung hat und die Funktion der Verwaltung relationaler Datenbanken übernimmt. SQL ist eine deklarative Sprache, aber ihre Hauptrichtung sind Datenbanken. Sie können direkt darauf zugreifen oder ein Programm verwendenramMing-Sprache mit vorinstallierten Bibliotheken.

SQL-Injektionen

Die erste und wichtigste Sicherheitsmaßnahme in jedem System ist ganz einfach: Wir müssen die Software der Maschine aktualisieren. An Debian, dieser Befehl lautet:

sudo apt update && sudo apt upgrade -y
Update machine packets
Screenshot Nr. 1 – Maschinenpakete aktualisieren

Dann verwenden wir die Python Bibliothek, um unsere Datenbank anzufordern. Laden Sie das erforderliche Paket herunter:

pip install psycopg2
Install psycopg2
Screenshot Nr. 2 – Installieren Sie psycopg2

Wenn Sie die Fehlermeldung „Pip-Befehl nicht gefunden“ in a sehen Debian system>, geben Sie diesen Befehl ein:

sudo apt-get install python3-pip

Wenn die Fehlermeldung „Es konnte keine Version gefunden werden, die die Anforderung psycopg2 erfüllt“ angezeigt wird, geben Sie diesen Befehl ein:

pip install psycopg2-binary

Um sicherzustellen, dass Sie etwas eingeben können CLI:

pip --version
Pip installation
Screenshot Nr. 3 – Pip-Installation

Parameterisierte Abfragen

Nehmen wir an, Sie verfügen über eine Webanwendung, mit der Benutzer nach Produkten anhand des Namens suchen können. Anstatt eine Abfrage wie die folgende zu verwenden:

SELECT * FROM products WHERE name = 'searchterm';

You need to use a parameterized query that can predict input non–validation data like in this config:

SELECT * FROM products WHERE name = ?;

And pass the search term as a parameter, for example, present below:

import psycopg2

conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")

cur = conn.cursor()

search_term = "apple"

cur.execute("SELECT * FROM products WHERE name = %s;", (search_term,))

rows = cur.fetchall()

for row in rows:
print(row)

conn.close()

first-method
Screenshot Nr. 4 – Erste Methode

Eingabevalidierung

Nehmen wir an, Sie haben ein Formular, in dem Benutzer Kommentare abgeben können. Bevor Sie den Kommentar in die Datenbank einfügen, validieren Sie die Eingabe, um sicherzustellen, dass sie nur gültige Zeichen enthält. In PHP können Sie beispielsweise die Funktion preg_match verwenden, um nach alphanumerischen Zeichen und zu suchen spaces.

$comment = $_POST['comment'];

if (!preg_match('/^[a-zA-Z0-9 ]+$/', $comment)) {
// Invalid input, do something
} else {
// Insert comment into database
}

second_method
Screenshot Nr. 5 – Zweite Methode

Zugriff mit geringsten Berechtigungen

Sie haben eine Datenbank mit mehreren Tabellen und möchten einen Benutzer erstellen, der nur Daten aus einer Tabelle lesen kann. Erstellen Sie einen neuen Benutzer und gewähren Sie ihm nur SELECT-Berechtigungen für diese Tabelle. Beispielanzeige unten:

CREATE USER readonly_user;
GRANT SELECT ON products TO readonly_user;

Fehlerbehandlung

Nehmen wir an, Sie haben ein Anmeldeformular, in das Benutzer ihren Benutzernamen und ihr Passwort eingeben können. Wenn ein Fehler vorliegt, beispielsweise ein falscher Benutzername oder ein falsches Passwort, wird eine allgemeine Fehlermeldung anstelle einer detaillierten angezeigt. In Java können Sie beispielsweise die SQLException abfangen und eine generische Fehlermeldung anzeigen.

try {
// Execute query to check if the username and password match
} catch (SQLException e) {
System.out.println("Error: Could not log in.");
}
third-method
Screenshot Nr. 6 – Dritte Methode

Schutz vor SQL-Injection

Zusammenfassend lässt sich sagen, dass die Sicherheit von Webanwendungen ein entscheidender Aspekt der Softwareentwicklung ist. SQL-Injection-Angriffe sind eine der häufigsten Arten von Angriffen auf Datenbanken, die zu erheblichem Schaden für ein Unternehmen führen können. Um solche Angriffe zu verhindern, ist es wichtig, die Grundprinzipien der SQL-Sprache und ihrer Schwachstellen zu erlernen, SQL-Injection-Techniken zu studieren und Codebeispiele zu analysieren, die SQL-Injection-Schwachstellen enthalten.

Darüber hinaus sollten Entwickler verschiedene Schutzmethoden anwenden SQL-Injektionen, wie zum Beispiel mit parameterisierte Abfragen, Eingabevalidierung, Zugriff mit geringsten Rechten und Fehlerbehandlung. Durch die Implementierung dieser Techniken können Entwickler die Sicherheit ihrer Anwendungen gewährleisten und sensible Daten vor unbefugtem Zugriff schützen. Es ist wichtig, über die neuesten Sicherheitsmaßnahmen auf dem Laufenden zu bleiben und die Software auf dem neuesten Stand zu halten, um potenzielle Schwachstellen zu vermeiden.

Abstimmung:
5 aus 5
Durchschnittliche Bewertung: 5
Bewertet von: 1
1101 CT Amsterdam Niederlande, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Das könnte dir auch gefallen ...

Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
Cookies und Datenschutzbestimmungen.