Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] ist htmlspecialchars ausreichend?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] ist htmlspecialchars ausreichend?

    Um SQL-Injections zu umgehen, bin ich auf Funktionen wie [MAN]htmlspecialchars[/MAN], [MAN]mysql_real_escape_string[/MAN], [MAN]addslashes[/MAN] gestoßen.

    Sind die Funktionen ähnlich sicher?
    Würde es reichen, jeweils eine Funktion davon zu benutzen:
    PHP-Code:
    $username htmlspecialchars($_POST['username']); 
    Oder gibt es da entscheidende Unterschiede?


  • #2
    Hi.

    Lies Dir mal bitte das hier durch, dann hast du das entsprechende Verständnis dafür:

    PHP: SQL Injection - Manual

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Bitte lies diesen Artikel komplett und aufmerksam durch:
      http://aktuell.de.selfhtml.org/artik...ontextwechsel/

      Kommentar


      • #4
        Natürlich gibt es da Unterschiede und natürlich findest du sie im Handbuch.
        http://hallophp.de

        Kommentar


        • #5
          htmlspecialchars ist *nicht* ausreichend,

          PHP-Code:
          <?php

          $param 
          'test\\';
          $param2 '; DROP TABLE `tbl`; --';

          $q "SELECT `col1` FROM `tbl`
                WHERE  `col2` = '" 
          htmlspecialchars($param) . "'
                AND    `col3` = '" 
          htmlspecialchars($param2) . "'";
          echo 
          $q;
          addslashes ist *nicht* ausreichend.

          htmlspecialchars ist zur Ausgabe im Browser gedacht und hat mit Datenbanken nichts am Hut. Wozu addslashes nützlich sein soll, entzieht sich meiner Kenntnis.

          Edit: Und nur, weil die Leute ja auf die lustigsten Ideen kommen: htmlentities ist ebenfalls *nicht* ausreichend (siehe htmlspecialchars). htmlentities ist heutzutage, wo die meisten Seiten als UTF-8 ausgeliefert werden können, ohnehin ein wenig ein "Auslaufmodell". htmlspecialchars ist meist die bessere Alternative.

          Kommentar


          • #6
            Ich habs jetzt:
            - mysql_real_escape_string vor dem Speichern in die Datenbank nutzen, um die Query gegen Manipulation zu schützen.
            - htmlspecialchars vor jeglicher Bildschirmausgabe verwenden, egal, ob nach Auslesen aus der Datenbank oder beim Wiederbefüllen des Formulars, bei unvollständigen Eingaben.
            Danke für die Links!

            Kommentar


            • #7
              Zitat von chuvak Beitrag anzeigen
              - html_entities vor jeglicher Bildschirmausgabe verwenden
              Nein - eher htmlspecialchars (und eine vernünftige Zeichenkodierung) verwenden.

              Kommentar


              • #8
                Jetzt richtig?

                Kommentar

                Lädt...
                X