Heim > Backend-Entwicklung > PHP-Tutorial > Können SQL-Injections über POST- und GET-Anfragen hinausgehen?

Können SQL-Injections über POST- und GET-Anfragen hinausgehen?

DDD
Freigeben: 2024-11-13 16:42:02
Original
586 Leute haben es durchsucht

Can SQL Injections Go Beyond POST and GET Requests?

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 ']);
Nach dem Login kopieren

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)) . "'";
Nach dem Login kopieren

2. GET-Methode

Variablen werden über die URL initialisiert:

$videoID = trim($_GET['videoID']);
$userID = trim($_GET['userID']);
Nach dem Login kopieren

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";
Nach dem Login kopieren

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 bei allen 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage