Sicherheit bei mySQL-Abfragen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherheit bei mySQL-Abfragen

    Hallo,

    da ich immermal vereinzelt was über die Sicherheit von mySQL-Abfragen in Verbindung mit Formularen gelesen habe, möchte ich mal fragen, was man nun wirklich alles machen sollte.

    Wenn ich also ein Formular habe, in dem per POST oder GET die id und weitere Daten eines Eintrages geliefert werden und ich etwas machen will wie:
    PHP-Code:
    $query "UPDATE `table` SET `wert` = '".$_POST["wert"]."' WHERE id=$id"
    Überprüfe ich erst die ID
    PHP-Code:
    if (!is_numeric($id)) die("Nö"); 
    und dann noch auf mySQL-Schlüsselwörter
    PHP-Code:
     $badwords = array("select""union""where""drop");
     foreach(
    $_POST as $key=>$value)
       foreach(
    $baswords as $wort)
         if (
    eregi("[ ]+".$wort."[ ]+"$value)) die("Nö"); 
    Reicht das, oder bleiben dann noch Sicherheitslücken offen?
    Gibt es noch mehr "böse" Schlüsselwörter oder reichen die 4?

  • #2
    Such doch mal nach SQL-Injection hier im Forum oder besser bei ; dann hast du bestimmt Infos zum Lesen für ein paar Wochen

    Kommentar


    • #3
      Oh, ich vergass natürlich die regulärenAusdrücke bei den meisten Formular-Feldern, die Sonderzeichen verbieten und die add-slashes-Funktion bei den restlichen Formular-Feldern.
      Damit dürfte ich ja einen großen Teil der SQL-Incections abgedeckt haben
      Und wer trägt bitte in sein php-Script einen Administrator der Datenbank ein?

      Kommentar


      • #4
        Original geschrieben von neogrande
        und die add-slashes-Funktion bei den restlichen Formular-Feldern.
        www.php.net/mysql_real_escape_string ? ist besser als add-slashes, zumindest meißt besser...

        Und wer trägt bitte in sein php-Script einen Administrator der Datenbank ein?
        ICH
        auf nem localhost ist das kein Problem, und auch wenn du richtig codest, ist das kein Problem, was nicht heißt, das es ne gute Idee ist

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von neogrande
          Oh, ich vergass natürlich die regulärenAusdrücke bei den meisten Formular-Feldern, die Sonderzeichen verbieten und die add-slashes-Funktion bei den restlichen Formular-Feldern.
          Damit dürfte ich ja einen großen Teil der SQL-Incections abgedeckt haben
          Und wer trägt bitte in sein php-Script einen Administrator der Datenbank ein?

          einfach mal bei www.php.net nach sql-injection suchen, gibt extra eine Seite dazu.



          und von mysql_escape_string bzw. mysql_real_escape_string noch nix gehört?
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            von mysql_escape_string bzw. mysql_real_escape_string noch nix gehört?
            Schon, aber mir ist der Unterschied zu addslashes nicht klar (abgesehen von der Verbindungskennung bei mysql_real_escape_string).

            Werden denn andere Zeichen berücksichtigt als bei addslashes (leider sind die maskierten Zeichen in der Doku von addslashes angegeben, bei mysql_escape_string aber nicht)?

            Kommentar


            • #7
              benutzt du jetzt bitte endlich mal die suche?
              das thema haben wir wirklich schon zur genüge durchgekaut.

              *close*
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X