TS: [LÖSUNG], wie immer ein PHP-Bug/Unsinnigkeit

Beitrag lesen

Hallo und guten Morgen,

Ich hatte diesen merkwürdingen Fehler neulich schon mal, und habe ihn mir eben leider nicht gemerkt. Da ich noch nicht herausgefunden habe, wann htmlspecialchars() nun noch arbeitet und wann nicht, muss ich also erst einmal alle wesentlichen Skripte nacharbeiten und die Parameter ergänzen.

BTW: hier wäre jetzt der Tag "Bug?" angebracht. Und später dann vielleicht noch "Bug!" ;-))

Laut Dokumentation liefert htmlspecialchars() einen leeren String, wenn es "glaubt"

ini_get("default_charset")

in der Kodierung "A" zu arbeiten, aber einen String verarbeiten soll, der in der Kodierung "B" ist und Zeichen enthält, die in der Kodierung "A" nicht vorgesehen sind.

Das ergibt sich allerdings nur wenn man wirklich alles liest:

  • **ENT_IGNORE **: Verwirft ungültige Code Unit Sequenzen anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann.
  • ENT_SUBSTITUTE: Ersetzt ungültige Code Unit Sequenzen mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls) anstatt eine leere Zeichenkette zurückzugeben.

Ich würde also sagen, nicht das Programm ist "buggy", sondern die Dokumentation, die darauf deutlicher hinwiesen sollte.

Das Standardverhalten ist durchaus suspekt.
Überhaupt keine Ausgabe zu liefern, während früher ja immer eine kam, ist schon sehr Benutzer(=Programmierer)-unfreundlich. Man könnte ja zumindest eine auf einen "sicheren Zeichensatz" reduzierte Ausgaben liefern. Die würde einem dann eher naheliegen, dass etwas mit der Ausgabe nicht OK ist.

Oder besser: man könnte zumindest eine Notice oder eine Warning liefern oder einen Eintrag im Error-Log produzieren. Nichts davon geschieht. Die PHP-Core-Entwickler arbeiten einfach nicht sauber!

Ich werde htmlspecialchars() jedenfalls jetzt ganz oben auf meine Liste für die Fehlersuche setzen. So unscheinbar diese Funktion daherkommt, so essentiell wichtig ist sie doch für die Sicherheit von Webseiten!

Grüße
TS

0 49

HTTP und Seiten-Lade-Funktion

TS
  • https
  • php
  1. 0

    HTTP und Seiten-Lade-Funktion, Nachtrag

    TS
    1. 0

      HTTP und Seiten-Lade-Funktion, chunked

      TS
      1. 0
        dedlfix
        1. 0
          TS
          1. 0
            dedlfix
            1. 0
              TS
            2. 0
              Jörg Reinholz
          2. 0
            Der Martin
            • https
            1. 0
              Jörg Reinholz
              1. 0
                TS
                • https
                • php
                • webserver
                1. 0
                  Jörg Reinholz
          3. 0
            woodfighter
            1. 0
              TS
              1. 0
                Jörg Reinholz
                1. 0
                  TS
                  1. 0
                    Der Martin
                    1. 0

                      HTTP und Seiten-Lade-Funktion, Unterschiede?

                      TS
                  2. 0
                    Jörg Reinholz
                    1. 0

                      HTTP und Seiten-Lade-Funktion, Blinker

                      TS
  2. 0
    Jörg Reinholz
    1. 0
      TS
      1. 0
        Jörg Reinholz
        1. 0
          TS
          1. 0
            Jörg Reinholz
  3. 0

    Billige Teillösung - typisch PHP

    TS
    1. 0
      dedlfix
      1. 0
        Tabellenkalk
        • meinung
        1. 0
          Der Martin
          1. 0

            [LÖSUNG], wie immer ein PHP-Bug/Unsinnigkeit

            TS
            • php
            • zur info
            1. 0
              Jörg Reinholz
              1. 0
                TS
                1. 0
                  Jörg Reinholz
                  1. 0
                    TS
                    1. 0
                      Jörg Reinholz
            2. 0
              dedlfix
        2. 0
          TS
          1. 0
            TS
            1. 0
              Jörg Reinholz
              1. 0
                TS
                • php
                • zur info
                1. 0
                  Jörg Reinholz
                  1. 0
                    TS
                    1. 0
                      Jörg Reinholz
                      1. 0

                        Encoding, htmlspecialchars()

                        TS
                        1. 0
                          Jörg Reinholz
                          1. 0
                            Tabellenkalk
                            • zur info
                            1. 0
                              Tabellenkalk
  4. 0

    Bei welchen HTTP Status Codes muss Body gelesen werden?

    TS
    1. 0
      dedlfix