Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verständnisfrage zu Injections

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Verständnisfrage zu Injections

    das nette PHP Manual sagt mir das mysql_real_escape_string vor einem Query ausgeführt werden soll. Heisst das für mich nun das ich vor jede Eingabe z.b. <input> Feldern escapen muss oder reicht es wenn ich das wie folgt angebe?

    PHP-Code:
    public function setEntry($date,$visitor,$message){
            
    $this->datum $date;
            
    $this->besucher $visitor;
            
    $this->nachricht $message;
            
    $db = new mysqli('localhost','root','','drk');
            
    $sql='INSERT INTO gb(datum,besucher,nachricht)VALUES("'.$this->datum.'","'.$this->besucher.'","'.$this->nachricht.'")';
            
    $result $db->query(mysql_real_escape_string($sql)); // HIer würde ich erst escapen
            
    if(!$result){
                die(
    $db->error);
            }
            
                
    //echo $result;
                
    $db->close();
            
        } 

  • #2
    Lies am besten diesen Artikel mal komplett durch, danach solltest du Bescheid wissen:

    Kontextwechsel erkennen und behandeln
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Ich würde immer erst escapen, bevor ich etwas aus POST oder GET übernehme!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        $db->query(mysql_real_escape_string($sql));
        Das ist kompletter Blödsinn und unwirksam. Die Beispiele im Manual sind auch eindeutig.
        Ich würde immer erst escapen, bevor ich etwas aus POST oder GET übernehme!
        Worauf bezieht sich das? Pauschal zu escapen ist ja auch nicht sinnvoll. Weder aus Sicht der Weiterverarbeitung, noch der Sicht der verwendeten Datentypen.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Das bezog sich auf die allgemeine Übergabe.
          Ich kenne Deine Scripte zwar nicht, aber POST und GET Werte werden zumindest in meinen Scripten immer zur weiteren Verarbeitung verwendet.
          Daher werden die auch immer escaped! Auf welchen Datentyp kommt dann drauf an, welchen ich erwarte.
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Das bezog sich auf die allgemeine Übergabe.
            Ich kenne Deine Scripte zwar nicht, aber POST und GET Werte werden zumindest in meinen Scripten immer zur weiteren Verarbeitung verwendet.
            Ja. Aber abhängig davon, ob ich sie:
            - ausgebe
            - in eine Session speichere
            - in eine DB speichere
            - bspw. mit if mit einem statischen Wert vergleiche
            wird jeweils ein anderes Escaping, vielleicht auch nur eine allgemeine Validierung und ein früher Abbruch nötig.
            Daher werden die auch immer escaped! Auf welchen Datentyp kommt dann drauf an, welchen ich erwarte.
            (erwarteter) INT der in Querys ohne Hochkommata notiert wird, kann mit real_escape nicht sinnvoll escaped werden. Hier ist explizites Casten nach INT o.ä. notwendig.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Absolut, genauso meinte ich das!
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Danke für den Artikel, werd ihn mir mit ner Tasse Kaffee mal zu gemüte ziehen.
                Bisher hab ich solches abfangen immer ignoriert da ich nur lokal arbeite/übe und wer soll da schon was böses reinhauen.

                Kommentar


                • #9
                  wer soll da schon was böses reinhauen.
                  Ein Hochkomma reicht u.U. schon. Das hat nicht zwingend etwas mit Angriffen zu tun.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar

                  Lädt...
                  X