Ausschließen von Zeichen

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

  • #16
    Na Klasse, und alle meine mühselig eingegebenen HTML-Tags sind futsch
    Nein sind sie nicht!!!
    Siehe meine Anmerkung zum zweiten Parameter!

    1. Damit lassen sich einige XSS Attacken verhindern!
    2. Was sollen HTML-Tags in Usernamen
    3. Was sollen HTML-Tags in Emailadressen
    4. Was sollen HTML-Tags in Get Parametern
    5. Was sollen HTML-Tags in $_COOKIE
    6. Was sollen HTML-Tags in PHP_SELF
    usw. Die wenigen Fälle, wo HTML vom Browser in die Anwendung fließen darf, sind als Sonderfall einzustufen.

    Also die Intelligenz, dass man ein Auto, welches man noch fahren möchte nicht vorher durch eine Schrottpresse schiebt, die setze ich hier doch mal vorraus!


    An Benutzereingaben herum zu fuschen ist mehr als daneben, wenn es nicht ausdrücklich so gewollt ist!
    Quark!!
    Andersrum wird da ein Schuh draus. Alles, wie es nur geht prüfen und von Müll befreien! Wie bei einer Firewall, Default: "deny all" und die Löchlein ganz gezielt bohren. Jede Möglichkeit, einem Script Input zu liefern, ist als brandgefährlich einzustufen
    Wir werden alle sterben

    Kommentar


    • #17
      nur weil du jetzt auf ständig auf HTML-tags herumreitest. strip_tags entfernt auch gnadenlos alles, was in spitzen klammern steht. nur weil das beispiel von dir kam, auch eine e-mail-adresse kann in spitzen klammern stehen.

      Kommentar


      • #18
        Ist es denn in allen Fällen unbedingt notwendig, die spitzen Klammern dort zuzulassen?
        Ansonsten gibts ja auch noch für diesen Sonderfall: PEAR\Mail\RFC822.php und viel andere!
        Weiterhin gilt uneingeschränkt: Was sollen HTML-Tags in Emailadressen
        Wir werden alle sterben

        Kommentar


        • #19
          Original geschrieben von 3DMax
          nur weil du jetzt auf ständig auf HTML-tags herumreitest. strip_tags entfernt auch gnadenlos alles, was in spitzen klammern steht. nur weil das beispiel von dir kam, auch eine e-mail-adresse kann in spitzen klammern stehen.
          Sehe ich genau so! Anstatt überall einfach deine Tags rauszulöschen, solltest du lieber überprüfen, ob die Übergabe dem gewünschten entspricht (filter, ctype, ...). Einfach die Tags rausschmeißen verwirrt die Anwender und das sollte immerhin der Großteil der Seitenbesucher sein!

          Kommentar


          • #20
            Ob man prüft und dann die Aktion ablehnt, oder bereinigte Daten zuläßt, kann man nur vom konkreten Einzelfall abhängig machen.

            Einfach die Tags rausschmeißen verwirrt die Anwender und das sollte immerhin der Großteil der Seitenbesucher sein!
            Ich glaube nicht, dass die meisten versuchen überall HTML Tags reinzuklappern. Die meisten dürften sich damit gar nicht auskennen. Und einen Angreifer, den darf man ruhig verwirren. Obwohl, ich glaube nicht, dass sich ein solcher so schnell verwirren läßt
            Wir werden alle sterben

            Kommentar


            • #21
              Mach wie du meinst! Wirst du schon irgendwann verstehen!

              Kommentar


              • #22
                Original geschrieben von combie
                Ich glaube nicht, dass die meisten versuchen überall HTML Tags reinzuklappern.
                man, es geht doch garnicht ausschließlich um html!
                echo strip_tags('4<9 und 3>2');

                Kommentar


                • #23
                  Man man man, es geht doch gar nicht ausschließlich um html!!!!
                  Aber, bleiben wir nochmal kurz dabei...

                  '4<9 und 3>2' ist ganz sicher kein Vorname!
                  PHP-Code:
                  if($_POST['vorname'] !== strip_tags($_POST['vorname'])) XSS_error('blabla');
                  if(
                  $_SERVER['PHP_SELF'] !== strip_tags($_SERVER['PHP_SELF'])) XSS_error('blabla'); 
                  Es dreht sich doch nur darum: Alles was vom Browser kommt möglichst scharf prüfen!
                  Angriffe erkennen, loggen und abwehren.

                  Wenn ihr meint auf strip_tags verzichten zu können, dann macht das! Springt in eure Grube! Ihr WOLLT mich falsch verstehen.. KA warum.. Ab jetzt halte ich in diesem Thread die Schnauze. Hab keine Lust mich über solche Boniertheit zu ärgern. Ich wünsche euch viel Erfolg auf euren Wegen.

                  6 setzen!
                  Zuletzt geändert von combie; 11.12.2007, 09:52.
                  Wir werden alle sterben

                  Kommentar


                  • #24
                    '4<9 und 3>2' ist ganz sicher kein Vorname!
                    Aber vielleicht ein Username oder einfach nur Text! String bei speichern und ausgeben escapen, aber niemals irgendwelche Zeichen weg ersetzen!
                    Wenn ihr meint auf strip_tags verzichten zu können, dann macht das! Springt in eure Grube! Ihr WOLLT mich falsch verstehen.. KA warum.. Ab jetzt halte ich in diesem Thread die Schnauze. Hab keine Lust mich über solche Boniertheit zu ärgern. Ich wünsche euch viel Erfolg auf euren Wegen.
                    Wie auch immer Mach deinen Mist, wir machen unseren!

                    Kommentar


                    • #25
                      <ombi3 oder <Combie> sind in gewissen Kreisen auch Usernames ... entweder die Zeichen sind erlaubt (dann einfach escapen => &lt; / &gt oder sie sind wie dann wahrscheinlich einige andere Zeichen auch nicht erlaubt - dann wird dem User angezeigt das er Zeichen verwendet hat die er nicht verwenden darf und die doch bitte entfernen soll.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #26
                        Manno.. einer geht noch...

                        Welche Blockaden plagen dich.....????
                        Wenn du < in Benutzernamen zulassen willst, dann gut, lass es zu! Aber üblich ist es nicht! Und wenn du schon unbedingt XSS Tags in deiner DB haben willst, dann mußst du bei der Ausgabe zum Browser ganz ganz ganz pingelig arbeiten. Eine Unachsamkeit und diese Tags verbreiten sich bei Google oder erscheinen auf der Website. Selbst wenn sie nicht sofort zur Ausführung kommen: Sie sind dann SICHTBAR!! Du hast sie ja schön mit htmlentities() bearbeitet, damit nix passieren kann(sonst wärst du ja voll dull, und dass glaube ich nicht). Was würdest du denken, wenn du auf eine "Seifenhersteller" Seite kommst, und dort den Code für das nachladen irgendwelcher chinesischen JS Fragmene siehst.

                        dann wird dem User angezeigt das er Zeichen verwendet hat die er nicht verwenden darf und die doch bitte entfernen soll.
                        Und dagegen sage ich doch überhaupt nix!!! Aber um soweit zu kommen, muß man doch erst mal prüfen...
                        Und dazu ist unter vielem anderen strip_tags() geeignet.
                        z.B. ebay.. dort kann man HTML eingeben!
                        Die werden mit Sicherheit strip_tags()(ja gut, die nutzen wohl kein PHP) oder was vergleichbares(z.B. einen Parser) benutzen...

                        Ihr könnt darauf verzichten, gut! Macht das!
                        Zuletzt geändert von combie; 11.12.2007, 10:30.
                        Wir werden alle sterben

                        Kommentar


                        • #27
                          Was würdest du denken, wenn du auf eine "Seifenhersteller" Seite kommst, und dort den Code für das nachladen irgendwelcher chinesischen JS Fragmene siehst.
                          Ähm, das setzt ja voraus, dass ich auf der Seifenherstellerseite überhaupt Benutzereingaben sehe. Vielleicht sehe ich das ja im Gästebuch des Seifenherstellers, und dann würde ich denken "der Chinese hats versucht, wird aber nix, weil ja alles brav escaped wird".

                          Das Escapen ist nicht pingeliger als das Filtern vor dem Abspeichern. Genau derselbe Aufwand. Vergessen sollte man natürlich nichts.

                          Wo ist das Problem?

                          Wieso überhaupt grade Seifenhersteller?
                          ich glaube

                          Kommentar


                          • #28
                            Wenn du eine vernünftige Datenbankklasse verwendest, ist das Escapen vor dem Speichern sogar ein Aufwand von 0! Lediglich bei der Ausgabe ein HTMLentities vorweg und Ruhe ist!
                            strip_tags ist dann sinnvoll, wenn du einen HTML-Text auf seinen Inhalt beschränken willst, beispielsweise in einer Übersicht in einem CMS, wo HTML-Inhalte eingepflegt werden!
                            Wenn du < in Benutzernamen zulassen willst, dann gut, lass es zu! Aber üblich ist es nicht!
                            Das werden aber nicht die einzigen Zeichen sein, die du nicht erlauben wirst. Da du dann eh eine ausgiebigere Prüfung durchführen musst, kannst du direkt auf strip_tags verzichten!

                            Kommentar


                            • #29
                              Das Escapen ist nicht pingeliger als das Filtern vor dem Abspeichern. Genau derselbe Aufwand.
                              Wenn du eine vernünftige Datenbankklasse verwendest, ist das Escapen vor dem Speichern sogar ein Aufwand von 0! Lediglich bei der Ausgabe ein HTMLentities vorweg und Ruhe ist!
                              Ganz klar ein übler Fehlschluß!!
                              Wenn du erstmal Schadcode in der DB(oder wo auch immer) hast, bist du schon einen gefährlichen Schritt zuweit!! Höchstwahrscheinlich sogar einer von strafrechtlicher Relevanz, wenn es hart auf hart kommt.
                              Ja ich habe Schadcode auf meinem Server!
                              Ja ich verbreite Schadcode!
                              Aber es kann nix passieren, weil: ??????
                              Da bin ich mal gespannt, wie du das dem Richter verkaufen willst....


                              Da du dann eh eine ausgiebigere Prüfung durchführen musst, kannst du direkt auf strip_tags verzichten!
                              Habe ich irgendwo das Gegenteil behauptet?
                              Und selbst wenn es sich bei meinem ersten Posting etwas so anhört...

                              strip_tags() ist eine der vielen Möglichkeiten Benutzereingaben zu prüfen bzw. zu filtern..
                              Ist es das Allheilmittel? Wohl nein!
                              Sollte man es in Betracht ziehen? JA!

                              Und darum darf es in einem Thread, wie "Ausschließen von Zeichen", in dem es doch irgendwie um Sicherheitsaspekte geht, durchaus erwähnt werden.

                              Ich kann das: strip_tags() ist böse nicht akzeptieren!
                              Zuletzt geändert von combie; 11.12.2007, 11:27.
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X