Frage

Mit PHP 5.2.6 in XAMPP:
Ich las über SQL-Injektionen hier und versuchte, das mit dem folgende Login-Formular:

<html><body>
        <form method='post' action='login.php'>
            <input type='text' name='user'/>
            <input type='text' name='pass'/>
            <input type='submit'/>
        </form>
</body></html>

und PHP-Code:

<?php
$user = $_POST['user'];
$pass = $_POST['pass'];
$query = "Select * from users where user='$user' AND pass='$pass'";
echo $query;
mysql_connect('localhost','root','');
mysql_select_db('test');
$res = mysql_query($query);
if($res) $row = mysql_fetch_assoc($res);
if($row) echo 'yes';
?>

Was ich herausgefunden hat war, der $ Pass Variable bereits all entkamen die Sonderzeichen hatte. So gibt es keine Notwendigkeit, das mysql_real_escape_string in PHP 5.2.6 dann zu benutzen?

War es hilfreich?

Andere Tipps

Die Werte können entwertet werden aufgrund Magic Quotes in der Server-Konfiguration aktiviert werden. Magic Quotes sind sehr schlecht betrachtet, im Grunde für den genauen Grund, den Sie erwähnen. Es ist nicht sicher auf ein Feature verlassen, die nicht auf automagically sein können, um Ihre eingehenden Daten zu entkommen. Es ist viel besser, es zu tun, um sie während der Laufzeit.

Für weitere Informationen über Magic Quotes, und warum sie schlecht sind, und wie sie deaktivieren, werfen Sie einen Blick auf einige dieser SO Fragen / Antworten:

Nein, ich glaube nicht, dass Sie sich hier sind. Unabhängig davon, ob magisch php Sonderzeichen in diesem Beispiel entweicht, wird der Dolmetscher nicht gehen auszuführen MySQL spezifische Flucht auf Ihre Anfrage args.

Ich denke, es ist sehr wahrscheinlich, dass es in diesem Code eine Schwachstelle ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top