2015-08-02 7 views
5

Ich habe eine kleine MySQL-Datenbank mit ein paar hundert Zeilen (alles im Text, keine Bilder). Ich beantrage alle Zeilen mit iQuery und führe die gesamte Filterung am Client aus. iQuery Code ist folgende:Gibt es ein Injektionsrisiko, wenn keine Benutzereingabe an die Datenbank gesendet wurde?

$(document).ready(function() { 
    $.get("alldata.php", function(data){ 
     $('#result').text(data); 
    }); 
}); 

Auf der Serverseite, der "alldata.php" hat den folgenden Code und die Daten im JSON-Pass zurück zu iQuery:

$sql = "SELECT title FROM mydatabase"; 
$result = mysqli_query($conn, $sql); 
$arr = array(); 

while($row = mysqli_fetch_assoc($result)){ 
    $row_array['Title'] =$row['title']; 
    array_push($arr,$row_array); 
} 
mysqli_close($conn); 

echo json_encode($arr); 

Es scheint, gibt mir Es besteht kein Risiko einer Injektion, da KEINE Benutzereingaben an die Datenbank übermittelt werden. Hab ich recht oder nicht? Vielen Dank für Ihre Anregungen!

+2

Es gibt eine Abfrage, eine Auswahl. Da jedoch keine Benutzereingaben vorgenommen werden, ist es für einen böswilligen Benutzer unmöglich, tatsächlich etwas zu injizieren. –

+0

Guter Punkt! Der Titel wurde entsprechend aktualisiert. – LearnAWK

Antwort

7

Sie haben Recht. Ihre SQL-Anweisung enthält keine Parameter außerhalb von sich selbst, daher gibt es keinen Vektor für die Injektion. Während Injektionsangriffe auf SELECT-Anweisungen möglich sind, wird die Abfrage in Ihrem Fall nicht dynamisch erstellt, sodass sie nicht manipuliert werden kann.

3

Sie sind sicher, da keine Benutzereingabe erfolgt. Ein böswilliger Benutzer benötigt eine Benutzereingabe, um eine Abfrage zu injizieren. Also vertraue niemals Benutzereingaben.

Verwandte Themen