datenbanken schützen

  • hi,
    wenn ich ne anweisung hab SELECT * FROM xxx WHERE id = '".$HTTP_GET_VARS['id']."'

    wie kan ich verhindern dass der benutzer beim aufrufen der seite einen befehl in id eingibt der der datenbank schadet??

    mit mysql_real_escape_string() oder?

  • Wenn ID wirklichg nur eine Zahl sein soll, kannst du preg_match verwenden:

    Code
    if (!preg_match("=^[0-9]+$=i", $HTTP_GET_VARS['id'])) { die('Fehler'); }

    Ansonsten ist deine Überlegeung schon richtig:
    mysql_real_escape_string maskiert alle Schadhaften zeichen :wink:


    MfG Christian

  • was ist das denn @killerbees ?
    mach es doch so:
    if(!is_numeric($_GET['id'])) {
    die("Unterlassen Sie das!");
    }
    sonst mysql_real_escape_string für strings und so

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • [qutoe]
    if(!is_numeric($_GET['id'])) {
    die("Unterlassen Sie das!");
    }
    [/quote]

    so hab ich mir das auch gedacht XD

    aber ok, ich maskier lieber die bösen zeichen :P danke sehr