Heim >Datenbank >MySQL-Tutorial >Wie implementiert man parametrisierte Abfragen mit MySQL-Verbindung in PHP, um SQL-Injection zu verhindern?
Parametrierte Abfragen mit MySQL-Verbindung in PHP
Die Gewährleistung der Sicherheit Ihrer Datenbankanwendungen ist von größter Bedeutung, und parametrisierte Abfragen sind ein entscheidender Schutz gegen SQL Injektionsattacken. Bei dieser Technik werden Benutzereingaben als Parameter und nicht als direkte SQL-Syntax verarbeitet, wodurch böswillige Zeichenmanipulation wirksam verhindert wird.
In Ihrem Code ist der unsichere Ansatz mit der Verkettung von Benutzernamen- und Kennwortparametern anfällig für Injektionen. Um dies zu beheben, führen Sie die folgenden Schritte aus:
Bereiten Sie die parametrisierte Abfrage vor:
<code class="php">$stmt = mysqli_prepare($dbc, "SELECT * FROM users WHERE username = ? AND password = ?");</code>
Dadurch wird eine Anweisung mit Platzhaltern (?) vorbereitet die zu übergebenden Parameter.
Bind Parameter:
<code class="php">mysqli_stmt_bind_param($stmt, "ss", $userName, $userPass);</code>
Hier gibt „ss“ die Parametertypen an: zwei Zeichenfolgen. $userName und $userPass sind an diese Parameter gebunden.
Führen Sie die Anweisung aus:
<code class="php">mysqli_stmt_execute($stmt);</code>
Dies führt die parametrisierte Abfrage mit der Bindung aus Parameter.
Abrufen Ergebnisse:
<code class="php">$row = mysqli_stmt_fetch($stmt);</code>
Dadurch wird die Ergebniszeile abgerufen, die dann auf Existenz oder weitere Manipulation überprüft werden kann.
Zusätzliche Empfehlungen:
Wenn Sie diese Schritte befolgen, können Sie kann die Sicherheit Ihrer PHP-Anwendungen erhöhen und sie vor SQL-Injection-Schwachstellen schützen. Denken Sie daran, dass parametrisierte Abfragen eine wesentliche Technik in der modernen Datenbankprogrammierung sind und immer für die Verarbeitung von Benutzereingaben verwendet werden sollten.
Das obige ist der detaillierte Inhalt vonWie implementiert man parametrisierte Abfragen mit MySQL-Verbindung in PHP, um SQL-Injection zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!