passwortschutz mit sessions und mysql db - sicherheitslöcher?

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

  • #16
    also - magic_quotes_gpc On ist OK

    nun hab ich versucht das ganze durch stripslashes und dann durch mysql_real_escape_string zu jagen.
    ich gebe [COLOR=blue]' [/COLOR] ein und erhalte folgendes:

    ausgabe vor stripslashes:
    [COLOR=blue] backslash' [/COLOR]
    ausgabe nach stripslashes:
    [COLOR=blue] ' [/COLOR]
    ausgabe vor mysql_real_escape_string:
    [COLOR=blue] backslash' [/COLOR]


    ist das normal/gut so, dass ich nach stripslashes wieder nur noch [COLOR=blue]' [/COLOR] erhalte?

    ziel wäre es ja backslashes zu erhalten vor den ' oder? dann lass ich stripslashes einfach weg?
    Zuletzt geändert von kendal; 10.05.2006, 22:05.

    Kommentar


    • #17
      ich würde magic_quotes_gpc=off auf jeden Fall setzen.

      Die User-Daten gehen ja in verschiedene Richtungen: SQL, HTML-Ausgabe, evtl. als URL. Man muss sie am Punkt der Verwendung gegen injects schützen, aber im php als originaler Text, ohne zusätzliche \\ vor gewissen (welche?) Zeichen haben.
      als SQL Daten: mysql_real_escape
      als HTML Daten: htmlspecialchars
      als URL Bestandteil: urlencode
      als Javascript String: addslashes
      als SQL Zahlen für OFFSET und LIMIT: intval(..)
      als Email Daten: vielfältiger als alles hier angegebene.

      Zusätzlich kann man anfangen auf injection zu prüfen, um Angriffe zu erkennen und zu loggen.

      Erg$nzung: wenn man Daten zB mit mysql_real_escape ins SQL einspeist, muss man sie beim Query nicht ent-escapen. Dasselbe gilt für die anderen Escapierungen. Diese werden von php bzw. mysql rückgängig gemacht. Nur email Codierungen sind anders.

      ergänzen kann man noch
      als PHP Literals: je nachdem ob in '...' oder "...." (von Hand).
      Zuletzt geändert von muh (newbie); 11.05.2006, 00:17.

      Kommentar


      • #18
        Öhm, du sollst ja mysql_escape_string und nicht mysql_real _escape_string benutzen Ansonsten ist das aber prinzipiell OK

        Kommentar


        • #19
          Original geschrieben von Manni_the_Dark
          Öhm, du sollst ja mysql_escape_string und nicht mysql_real _escape_string benutzen
          Da ist das Manual aber genau gegenteiliger Meinung:
          Anmerkung: Diese Funktion (=mysql_escape_string) ist seit PHP 4.3.0 veraltet. Benutzen Sie diese Funktion nicht und verwenden Sie stattdessen mysql_real_escape_string().
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #20
            je gemäss handbuch mysql_real_escape_string - werd ich auch verwenden, danke!

            Kommentar

            Lädt...
            X