PHP-Sicherheit - $_POST - Injektion

Bevor Sie live mit meiner website, ich habe einige Gedanken über Sicherheit:

Diese Frage ist über das Verständnis der Verarbeitung in PHP und nicht danach strebt, eine Lösung bei der Absicherung der form.

Betrachten Sie dieses barebone-Skript, welches komplett unsicher gegen xss und
sql-Injektionen, wenn vorhanden.

<?
if ($_POST['submit']=="1"){

    $input = $_POST['input'];
    echo "echo the input: ".$input."<br/>";
}
?>
<form action="<? $PHP_SELF;?>" method="POST">
<input type="text" name="input" value="<? echo $_POST['input'];?>"/>
<input type="hidden" name="submit" value="1"/>
<input type="submit" value="submit"/>
</form>

Frage ich mich, warum eine solche Injektion wie funktioniert das nicht (in dem Feld input):

";unset('index.php');

bin ich naiv zu denken das "; würde am Ende der echo-und als gehen Sie mit dem code.
Eigentlich bin ich sehr glücklich, das funktioniert nicht, aber ich würde gerne wissen, warum.
In SQL diese Art von würde aktuellen Arbeit 'ODER 1'.

ich wissen, um zu sichern diese mit addslashes oder htmlspecialchars aber das ist nicht die Frage. Ich will gewinnen, ein Insider, wie php funktioniert in der Verarbeitung dieser.

Dank

  • In Bezug auf Ihre eigene beiseite: Seien Sie vorsichtig mit allen string_munging Funktionen wie addslashes(), mysql_real_escape_string() und htmlspecialchars() Sie nur geben Sie den Schutz, den Sie wünschen in ausgewählten Orten und unter bestimmten Umständen. Siehe stackoverflow.com/questions/110575/...
InformationsquelleAutor Email | 2012-01-09
Schreibe einen Kommentar