fastix®: Sicherheit in Formularen

Beitrag lesen

Moin!

<form action="<?php
  if(isset($_POST['liste'])){
    include("db.php");
    $NR = $_POST['liste'];
    $del= "DELETE FROM TEST WHERE id= '".$NR."' ";
    $del = mysql_query($del, $connection);}
?>" method="post">

Fein. Ich baue ein Formular mit:

<form method="POST" action="http://DeinServer/DeinSkript.php">  
<input type="text" name="liste" value="1' OR id > '0" />  
</form>

und sende dieses ab. (Glaube nicht, dass dies nicht geht oder zu verhindern ist ...)

Dann steht in $del:

DELETE FROM TEST WHERE id= '1' OR id > '0'

Damit dürfte Deine Tabelle überraschend schnell leer sein und Du meinst dann zwar ich sei ganz BÖSE, kannst aber nicht mal wissen oder beweisen dass ich es war.

Wenn Du eine Zahl erwartest, dann solltest Du die Eingaben entgiften in dem Du nur eine Zahl benutzt. intval() und floatval() sind dann Deine Freunde. Erwartest Du einen String dann solltest Du diesen wenigstens mit mysql_real_escape_string() behandeln.

$del= "DELETE FROM TEST WHERE id= '".intval($_POST['liste'])."'";

dürfte das sein sein, was Du hier notieren willst.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix