2016-07-15 22 views
1

Ich habe dieses Kommentarformular, wo die einzigen Eingaben ein Name und ein Textfeld für einen Kommentar sind.Wie SQL Injection Möglichkeit in einer einfachen Form zu deaktivieren?

Meine Frage ist: Wie kann ich sicher sein, dass es keine Möglichkeit gibt, SQL Injection in meinem Code zu verwenden? Ich habe ein paar Anleitungen dafür gefunden, aber ich bin mir nicht sicher, wie ich sie mit meinem Code arbeiten lassen kann.

<?php 
if(isset($_POST['submit'])){ 
    $pvm = date("F j, Y"); 
    $postId = $_GET["post"]; 
    $lahettaja = $_POST['name']; 
    $kommentti = $_POST['comment']; 

    $sql = "INSERT INTO kommentti (post_id,kommentti_pvm,kommentti,lahettaja) VALUES (:post,:kommentti_pvm,:kommentti,:lahettaja)"; 
    $kysely = $yhteys->prepare($sql); 
    $kysely->bindParam("post", $postId); 
    $kysely->bindParam("kommentti_pvm", $pvm); 
    $kysely->bindParam("kommentti", $kommentti); 
    $kysely->bindParam("lahettaja", $lahettaja); 
    $kysely->execute(); 
} 
?> 
+1

Siehe Links wie http://stackoverflow.com/questions/60174/how -can-i-prevent-sql-injection-in-php –

Antwort

4

Sie sind bereits sicher gegen SQL-Injektion. Die einzige Möglichkeit, sich davor zu schützen, besteht darin, vorbereitete Anweisungen mit der richtigen Parametrisierung zu verwenden. Das heißt, verwenden Sie vorbereitete Anweisungen mit einem Parameter für jede einzelne Sache, die Benutzereingaben enthalten könnte. Du machst das, also bist du gut in Form.

Bitte beachten Sie: Dies bedeutet nicht bedeutet, dass Sie die Daten jemals als "sauber" oder sicher behandeln können. Sie können es zum Beispiel nicht aus der Datenbank ziehen und nur echo es. Auf diese Weise öffnen Sie sich für eine Art von Angriff namens XSS oder Cross-Site Scripting (technisch gesehen, in diesem Fall Reflektiertes XSS).

Für weitere Informationen und weitere Informationen zu erhalten, finden Sie unter:

+0

Okay, vielen Dank! Ich dachte wirklich, dass ich etwas hinzufügen muss, um Formulare oder ähnliches zu überprüfen. Toll zu wissen, dass ich es richtig mache. – Frostbch

+0

@Frostbch Schön zu helfen! –

+0

@Ed Cottrell Wie wäre es mit der Bereinigung von POST-Daten? – unixmiah