Ankündigung

Einklappen
Keine Ankündigung bisher.

Jemand Lust an bncms mitzuarbeiten?

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #61
    Zitat von bncms Beitrag anzeigen
    Nein ich will Benutzervariablen, die eh keine Tags enthalten sollen, schon vor der Speicherung maskieren und stripen damit der schädliche Code gar nicht erst in der Datenbank steht. Das ist sicherer als nur im Frontend-Kontext die Zeichen zu maskieren.
    Nein, du wiegst dich damit in einer falschen „Sicherheit“, was weitaus gefährlicher ist.

    Kommentar


    • #62
      Ich habe keine kaputten Daten ich löschen nur Tags in Variablen, die dort nichts verloren haben, im Vorfeld weg. Was weisst denn du was mit den Inhalten in deine DB alles geschieht? Und dann stehen dort Tags drin die schädlichen Code enthalten. Ich habe es gerade alles getestet geht. Ich hatte die Diskussion schon einmal: Wenn in Get Variablen wie einer action Variable zum Beispiel, die dann von einer Bedingung abgefangen wird, sowieso keine Tags vorkommen sollen. Dann kann man die auch gerade entfernen. Das ist im Endeffekt sicherer wenn man zweigleisig fährt mit einer geringen Typisierung und im Vorfeld versucht die Variablen und Daten in der DB sauber zu halten und gleichzeitig im Frontend maskiert.

      Aber ich habe das gemacht was tk1234 gesagt hat wegen des HTML-Kontexts beachtet und es hat mir doch etwas Arbeit abgenommen. Man muss ja nur an allen Stellen wo Inhalte zur Anzeige oder Ausführung durch den Browser ausgegeben werden, die Variablen enthalten, die zuvor von Benutzern hätten geändert werden können, diese maskieren. Das habe ich mit dem neuen Commit gemacht und zwar für den Frontend und Backendteil https://github.com/damianhunziker/bn...5dabeae1854c35. Zusammensetzend mit den letzten Injection-Commits dürfte sich jetzt ein sehr flächendeckendes Netz ergeben, dass nirgends mehr CSS/XSS oder Injection möglich macht. Könnt ihr das bestätigen?

      Ich muss doch noch einige Dinge machen von meiner Todolist aber wenn das abgeschlossen ist, dürfte es langsam recht bombensicher sein...

      bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

      Kommentar


      • #63
        Ich habe keine kaputten Daten ich löschen nur Tags in Variablen, die dort nichts verloren haben, im Vorfeld weg
        Dann überlege mal, was der Benutzer denkt, wenn ohne Hinweis Inhalte aus seinen Eingaben entfernt werden. Stichwort "unexpected behavior".

        Und wenn Du es bei der Ausgabe ja eh maskierst, warum löschst Du es denn vorher heraus? Nebenbei: Bist Du Dir sicher, dass Du alle unerlaubten Eingaben ausfilterst? Es gibt immer irgend etwas, an das man nicht denkt..

        EDIT: Ich kann nachvollziehen, dass Dich das hier bei dem Ton frustriert. Aber lass das nicht an Dich ran. Zieh lieber so viel Information wie möglich heraus - Die Leute wissen, von was sie reden.

        Kommentar


        • #64
          Das geschieht nicht. Die Felder mit Benutzereingaben werden seperat behandelt, Textareas erhalten erlaubte Tags. In allen anderen Feldern haben Tags nicht verloren.

          Eigentlich möchte ich die Daten löschen, das maskieren macht man nur um eventuelle Reste von strip_tags
          zu maskieren. htmlspecialchars ist für die Ausgabe von Benutzereingaben gemacht und der Stand der Technik der PHP-Entwickler. Das funktioniert total selbstständig. Schwieriger ist es alles Stellen zu erwischen.
          bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

          Kommentar


          • #65
            htmlspecialchars() ist für jede Art von Text gedacht, nicht nur für Benutzereingaben. Der Kontextwechsel nach HTML sollte immer beachtet werden, egal aus welcher Quelle die Inhalte kommen. Deswegen macht man das sinnvollerweise dort, wo der Kontextwechsel statt findet: Bei der HTML-Ausgabe. Nicht bei der Eingabe oder beim Speichern.

            Kommentar


            • #66
              Beim Kontextwechsel mach ichs ja auch, ich machs nur vorher nochmal (bei Get und Post Variablen, die nur intern verwendet werden nicht Benutzereingaben). Doppelt gemoppelt hält besser. Werde flags machen um gewisse Tags oder alle für Felder zu erlauben.
              bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

              Kommentar


              • #67
                Zitat von bncms Beitrag anzeigen
                Beim Kontextwechsel mach ichs ja auch, ich machs nur vorher nochmal (bei Get und Post Variablen, die nur intern verwendet werden nicht Benutzereingaben). Doppelt gemoppelt hält besser.
                Nein, das ist falsch. Wenn du zweimal htmlspecialchars() anwendest, erhältst du Datenmüll. Der Kontextwechsel muss UND DARF nur einmal behandelt werden, sonst ist es fehlerhaft.

                Kommentar


                • #68
                  Wenn Datenmüll produziert wird dann nur weil der Benutzer versucht hat Tags einzuschmuggeln. Aber diese Variablen werden normalerweise eh nicht gespeichert. Wenn du das Skript und alles so gut kennst wieso schaust du nicht nach dann erkennst du es ja selbst. Kannst mir auch gerne sagen wo Datenmüll produziert werden soll oder wenn du Stellen findest, die nicht escaped oder maskiert sind.
                  bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

                  Kommentar


                  • #69
                    Zitat von bncms Beitrag anzeigen
                    Wenn Datenmüll produziert wird dann nur weil der Benutzer versucht hat Tags einzuschmuggeln. Aber diese Variablen werden normalerweise eh nicht gespeichert. Wenn du das Skript und alles so gut kennst wieso schaust du nicht nach dann erkennst du es ja selbst. Kannst mir auch gerne sagen wo Datenmüll produziert werden soll oder wenn du Stellen findest, die nicht escaped oder maskiert sind.
                    Warum kannst du nicht EINMAL etwas akzeptieren, was man es dir sagt? Warum glaubst du immer schlauer als alle andern zu sein? Wenn du etwas nicht weißt, dann lies nach. Aber versuch nicht immer auf Basis von Halbwissen ständig neue Ausreden zu erfinden. Das ist echt mühsam.

                    Nur mal ein Beispiel: Schau was aus "Max & Moritz" wird, wenn du zweimal htmlspecialchars() darauf anwendest.

                    Du hast dich irgendwie auf HTML-Tags eingeschossen, aber darum gehts bei dem Thema doch gar nicht. Es geht darum Zeichen, die in HTML eine Sonderbedeutung haben, bei der HTML-Ausgabe durch die entsprechenden Entitäten zu ersetzen. Nicht mehr und nicht weniger. Das ist eigentlich komplett simpel und überschaubar. Ersetze immer dann diese Sonderzeichen, wenn du Werte in HTML-Code einsetzt. Punkt. Mehr braucht es dazu nicht. Das ist 100% ausreichend.

                    Kommentar


                    • #70
                      Normalerweise schenk ich Leuten die mich öffentlich verleumden und "anschreien" nicht besonders viel Wohlwollen.

                      Die Variablen haben solche Zeichen nicht zu enthalten und es handelt sich nicht um Benutzereingaben. Sie an der der Stelle zu säubern ist sicherer.
                      bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

                      Kommentar


                      • #71
                        Zitat von bncms Beitrag anzeigen
                        Die Variablen haben solche Zeichen nicht zu enthalten und es handelt sich nicht um Benutzereingaben. Sie an der der Stelle zu säubern ist sicherer.
                        Als Programmierer will man dann aber mit so einem System nicht arbeiten, wo lauter Dinge sinnlos "verboten" sind, weil sich das jemand so ausgedacht hat.

                        Warum sollte eine Variable kein &, <, >, ' oder " enthalten dürfen? Das sind reguläre Schriftzeichen in der deutschen und englischen Sprache.

                        Kommentar


                        • #72
                          Es betrifft nur Steuervariablen und interne Variablen, die als Post oder Get übergeben werden. Wie zum Beispiel der Indikator für die aktive Seite. In diesen haben solche Zeichen nicht vorzukommen. Benutzereingaben aus Formularen unterlaufen dem Prozedere nicht. Es geschieht nur eine gewisse Typisierung.

                          Ich tue das um sicherzustellen, dass keine gefährlichen Eingaben in Get und Post Variablen weiterverarbeitet werden und umgewandelt werden in Variablen, die nicht mehr klar ersichtlich Benutzereingaben sind. Deswegen werden Get und Post Variablen bei der Umbenennung oder Übergabe an Funktionen gesäubert. Auf diesem Weg lässt sich jederzeit identifizieren welche Variable eventuell schädlichen Code enthalten kann. Das ist bloss ein zusätzliches Sicherheits-Layer zum maskieren im Frontend.
                          bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

                          Kommentar


                          • #73
                            Zitat von bncms Beitrag anzeigen
                            Ich tue das um sicherzustellen, dass keine gefährlichen Eingaben in Get und Post Variablen weiterverarbeitet werden und umgewandelt werden in Variablen, die nicht mehr klar ersichtlich Benutzereingaben sind. Deswegen werden Get und Post Variablen bei der Umbenennung oder Übergabe an Funktionen gesäubert. Auf diesem Weg lässt sich jederzeit identifizieren welche Variable eventuell schädlichen Code enthalten kann. Das ist bloss ein zusätzliches Sicherheits-Layer zum maskieren im Frontend.
                            Das ist erstmal nur Gewurschtel und hat mit Security nicht sonderlich viel zu tun. Ob Daten "gefährlich" sind hängt immer davon ab wie und in welchem Kontext sie verwendet werden. HTML-Code der vom Nutzer in ein Textfeld eingegeben wurde ist bspw. völlig unbedenklich und kann auch in der Datenbank abgespeichert werden. Erst bei der Ausgabe im HTML-Kontext ist ein entsprechendes escaping notwendig. Wieso diverse Sonderzeichen in "Steuervariablen" nun ein Sicherheitsrisiko darstellen erschließt sich mir nicht.

                            Kommentar


                            • #74
                              Es ist absolut gängige Vorgehensweise Tags komplett aus Variablen zu entfernen, damit diese nicht weiterverarbeitet werden und gespeichert. Lächerlich, dass ich das hier ausführen muss. Zeigt, dass ihr eigentlich keine Erfahrung in der praktischen Umsetzung habt und hier nur rumdisst mit Halbwissen, dass irgendwo aus Webseiten gezogen wurde.
                              bncms - Allround-Adminarea und CRUD-Library ------------------------------------------- jobbrett.net - Freelancer Jobboard mit niedrigen Gebühren nur 3%

                              Kommentar


                              • #75
                                Zitat von bncms Beitrag anzeigen
                                Es ist absolut gängige Vorgehensweise Tags komplett aus Variablen zu entfernen, damit diese nicht weiterverarbeitet werden und gespeichert. Lächerlich, dass ich das hier ausführen muss. Zeigt, dass ihr eigentlich keine Erfahrung in der praktischen Umsetzung habt und hier nur rumdisst mit Halbwissen, dass irgendwo aus Webseiten gezogen wurde.
                                Also für die vielen Wissenslücken, die du ständig präsentierst, spuckst du ziemlich große Töne und unterstellst dabei Leuten, die viele Jahre als professionelle Entwickler von Webanwendungen tätig sind, mangelnde Erfahrung. Merkst du nicht, was für einen Blödsinn du da von dir gibst und dich selber damit nur lächerlich und unglaubwürdig machst?

                                Kommentar

                                Lädt...
                                X