Code anfällig für SQL-Injections?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Code anfällig für SQL-Injections?

    Hallo,


    ist dieser Code anfällig für böse SQL-Injections? :

    PHP-Code:

    if ( isset ( $_GET 's' ] ) )
    {
            
    $schluessel $_GET 's' ];
    }
    else
    {
            die ( 
    "ungütiger Aufruf!" );
    }


    ...

    // id ermitteln
           

    $sql "UPDATE tabelle SET zugang_aktiviert='1' WHERE id='" $row->id "' AND schluessel='" $schluessel "'";
    $ergebnis mysql_query $sql$verbindung ); // Verbindung ist natürlich vorhanden 
    Es geht vor allem um den Teil:

    PHP-Code:
    AND schluessel='" . $schluessel . "'"; 

    Gruß Maiki

  • #2
    Ja.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Nun sind das ja Teile, die ständig mal irgendwo vorkommen... zumindest bei mir...

      Seid Ihr da so sorgfältig, macht Ihr Euch die Arbeit...?

      Wenn ja: Gibt es da Standard-Prozeduren, um Schadcode zu entfernen oder muss man da auf jede Delikatesse (OR, DROP, usw.) einzeln losgehen?

      Kommentar


      • #4
        Original geschrieben von *Maiki
        Gibt es da Standard-Prozeduren, um Schadcode zu entfernen oder muss man da auf jede Delikatesse (OR, DROP, usw.) einzeln losgehen?
        normalerweise benutzt man eine datenbank-klasse, hier kannst du dann zentral die werte entschärfen, z.b. mit http://de2.php.net/manual/en/functio...ape-string.php

        Kommentar


        • #5
          Seid Ihr da so sorgfältig, macht Ihr Euch die Arbeit...?
          Natürlich. Alles andere wäre auch Selbstmord. mysql_real_escape_string auf alles was rein kommt sollte für den Anfang reichen. Wenn du noch mehr willst solltest du dich mit Prepared Querys beschäftigen. Eine Prüfung ob auch das drin ist was drin sein soll (Regex, Typ-Prüfung) ist auch angebracht.
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar


          • #6
            Aha, klingt ja ausschweifend!

            Kennt jemand ein Tutorial? Da möcht ich das Rad nicht neu erfinden, zumal die Gefahr groß sein wird, dass ich dabei was vergess und halbe Räder bringens ja erst recht nicht, schon gar nicht in der Programmierung, wos immer schön rund laufen muss.

            Kommentar


            • #7
              Original geschrieben von *Maiki
              Seid Ihr da so sorgfältig, macht Ihr Euch die Arbeit...?
              Welche Arbeit? Die, nicht zu schlampen, und ordentlichen Code zu schreiben?
              Wenn ja: Gibt es da Standard-Prozeduren
              Ja, und die sind hier schon x-fach diskutiert worden.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von wahsaga
                Welche Arbeit? Die, nicht zu schlampen, und ordentlichen Code zu schreiben?


                *hehe* Wie ers nur wieder weiß!

                Original geschrieben von wahsaga
                Ja, und die sind hier schon x-fach diskutiert worden.
                Das fand ich... romantisch.


                Habt Dank!

                Kommentar


                • #9
                  Original geschrieben von *Maiki
                  Kennt jemand ein Tutorial? Da möcht ich das Rad nicht neu erfinden, zumal die Gefahr groß sein wird, dass ich dabei was vergess und halbe Räder bringens ja erst recht nicht, schon gar nicht in der Programmierung, wos immer schön rund laufen muss.
                  *g* eckige räder haben meist die eigenschaft, nicht rund zu laufen

                  z.b.: http://phplens.com/phpeverywhere/adodb_german
                  insbesondere: http://phplens.com/adodb/reference.functions.qstr.html

                  Kommentar

                  Lädt...
                  X