Heim > Artikel > Backend-Entwicklung > Können SQL-Injections über POST- und GET-Anfragen hinausgehen?
Können SQL-Injections über POST- und GET-Anfragen hinaus auftreten?
SQL-Injections nutzen Schwachstellen in Webanwendungen aus, die Benutzereingaben vor der Einbindung in Webanwendungen nur unzureichend bereinigen SQL-Abfragen. Während POST- und GET-Methoden gängige Wege für diesen Angriff sind, können SQL-Injections auch auf andere Weise erfolgen.
Im bereitgestellten Code wird mysql_real_escape_string verwendet, um Benutzereingaben zu kodieren, wodurch das Risiko einer SQL-Injection verringert wird. Die Sicherheit des Codes hängt jedoch stark von der konsistenten Anwendung dieser Kodierung ab.
Untersuchung des Beispielcodes
1. POST-Methode
Das Codebeispiel initialisiert Variablen mit Benutzereingaben:
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']);
Bevor die Benutzerinformationen in einer Datenbank gespeichert werden, werden sie angemessen codiert:
$sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'";
2. GET-Methode
Variablen werden über die URL initialisiert:
$videoID = trim($_GET['videoID']); $userID = trim($_GET['userID']);
Auch hier verwendet die SQL-Abfrage die entsprechende Codierung:
$sql = "SELECT videoID FROM likes WHERE videoID = '" . mysql_real_escape_string($videoID) . "' AND UID = '" . mysql_real_escape_string($userID) . "' LIMIT 1";
Fazit
Der von Ihnen bereitgestellte Code weist dank der konsequenten Verwendung von mysql_real_escape_string zur Kodierung von Benutzereingaben keine SQL-Injection-Schwachstellen auf. Es ist unbedingt zu beachten, dass die Codierung auf alle Benutzereingaben unabhängig von ihrer Quelle mit Bedacht angewendet werden muss. Um die Sicherheit weiter zu erhöhen, sollten Sie den moderneren Ansatz in Betracht ziehen, PDO mit vorbereiteten Anweisungen zu verwenden.
Das obige ist der detaillierte Inhalt vonKönnen SQL-Injections über POST- und GET-Anfragen hinausgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!