karlotta: scripteingaben in ein formular verhindern

Wie kann ich mit Javacript verhindern,
dass scripte oder urls in mein Formular eingegeben werden koennen?

  1. Ist heute der Tag der Unfreundlichkeit?

    htmlspecialchars() für JavaScript

    1. Ist heute der Tag der Unfreundlichkeit?

      htmlspecialchars() für JavaScript

      sorry, da war mir was durcheinander geraten mit den fenstern.
      keine boese absicht.

      danke fuer die hinweise, ich schau mal, ob ich was finde

      1. Ist heute der Tag der Unfreundlichkeit?

        htmlspecialchars() für JavaScript

        sorry, da war mir was durcheinander geraten mit den fenstern.
        keine boese absicht.

        danke fuer die hinweise, ich schau mal, ob ich was finde

        ich dachte eigentlich, es waere einfach, weil doch alle die ein formular anbieten, damit konfrontiert sind, dass kein < oder > eingegeben werden soll.

        ich habe ein script aus selfhtml, was mir ein bestimmtes zeichen einfordert, hier das @, aber nicht eines,was mir ein zeichen ausschliesst.

        if (document.bestellung.name_adresse.value.indexOf("@") == -1)

        das umgekehrte geht wohl so nicht

        if (document.bestellung.name_adresse.value.indexOf("<") == 1)

        1. Hi,

          ich dachte eigentlich, es waere einfach, weil doch alle die ein formular anbieten, damit konfrontiert sind, dass kein < oder > eingegeben werden soll.

          jau. Die meisten, die damit konfrontiert werden, kommen allerdings darauf, dass eine Technik, die der Nutzer abschalten kann (*falls* er sie überhaupt hat), gegen dieses Problem keine Lösung darstellen kann. Außerdem wird den meisten schnell klar, dass nicht das *Eingeben* das Problem darstellt - und auch nicht das Abschicken.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            ich dachte eigentlich, es waere einfach, weil doch alle die ein formular anbieten, damit konfrontiert sind, dass kein < oder > eingegeben werden soll.

            jau. Die meisten, die damit konfrontiert werden, kommen allerdings darauf, dass eine Technik, die der Nutzer abschalten kann (*falls* er sie überhaupt hat), gegen dieses Problem keine Lösung darstellen kann. Außerdem wird den meisten schnell klar, dass nicht das *Eingeben* das Problem darstellt - und auch nicht das Abschicken.

            Cheatah

            ach so. sehr hilfreich, herr schlaumeier.

            gibts auch konstruktive post?

            z.b. wie ich im php-script wo es ja hinlaeuft das abfangen kann?
            pser eben nach wie vor im javasript?

            1. Mahlzeit karlotta,

              ach so. sehr hilfreich, herr schlaumeier.

              War es, in der Tat. Wenn man sich die Mühe macht, die Thematik zu verstehen. Was hier in diesem Forum eigentlich Teilnahmevoraussetzung ist ...

              gibts auch konstruktive post?

              z.b. wie ich im php-script wo es ja hinlaeuft das abfangen kann?
              pser eben nach wie vor im javasript?

              Gab es doch schon: den Hinweis auf htmlspecialchars(). Wobei das Problem ja erst besteht, wenn Du die Eingaben, die jemand in ein Formular gemacht hat, einfach so unbehandelt wieder an den Browser zurückgibst, ohne sie entsprechend dem Kontext zu behandeln:

              Bei der Ausgabe als HTMl würde ich in der Tat htmlspecialchars() empfehlen (s.o.).

              Beim Eintragen in eine Datenbank wäre z.B. mysql_real_escape_string() sinnvoll.

              Solange Du nichts dergleichen machst, ist es IMHO höchst fragwürdig, irgendwas an den Eingaben eines Benutzers herumzupfuschen ...

              Die Frage, die Du Dir (und - falls Du weitere Hilfe möchtest - auch uns) stellen solltest, wäre also: was habe ich mit eingegebenen Daten vor?

              Achja - und wie in diesem Thread bereits mehrfach erwähnt wurde, ist es absolut sinnfrei eine Validitätsüberprüfung von Benutzereingaben im Browser (und damit vom Benutzer kontrollier- und manipulierbar) durchzuführen (in diesem Fall per Javascript).

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Die Frage, die Du Dir (und - falls Du weitere Hilfe möchtest - auch uns) stellen solltest, wäre also: was habe ich mit eingegebenen Daten vor?

                Achja - und wie in diesem Thread bereits mehrfach erwähnt wurde, ist es absolut sinnfrei eine Validitätsüberprüfung von Benutzereingaben im Browser (und damit vom Benutzer kontrollier- und manipulierbar) durchzuführen (in diesem Fall per Javascript).

                MfG,
                EKKi

                hallo ekki,
                danke soweit erstmal.

                ich weiss aber dennoch nicht so recht wie ich es machen soll.
                ich habe ein formular, dessen eingabe als mail ueber ein php-script verschickt wird.

                ich dachte, ich verhindere einfach das abschicken mit einem formularcheck in javasript. aber bei ausgeschaltetem javascript wird das wohl nicht mehr greifen.

                das problem also:
                das script soll garnichts versenden, wenn ein < darin vorkommt.
                werde wohl eine if-abfrage um den mail-befehl basteln muessen???

                1. Mahlzeit karlotta,

                  ich weiss aber dennoch nicht so recht wie ich es machen soll.
                  ich habe ein formular, dessen eingabe als mail ueber ein php-script verschickt wird.

                  Das ist der springende Hüpf dieses PHP-Skript. Dort ist eine Validitätsprüfung der Eingaben absolut notwendig.

                  ich dachte, ich verhindere einfach das abschicken mit einem formularcheck in javasript. aber bei ausgeschaltetem javascript wird das wohl nicht mehr greifen.

                  Korrekt.

                  das script soll garnichts versenden, wenn ein < darin vorkommt.
                  werde wohl eine if-abfrage um den mail-befehl basteln muessen???

                  So ist es. Oder Du lässt es halt zu - dann solltest Du es ggf. allerdings entsprechend maskieren (z.B. per htmlspecialchars()).

                  MfG,
                  EKKi

                  --
                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            2. Hi!

              ach so. sehr hilfreich, herr schlaumeier.

              *g* so hat ihn schon langekeiner mehr genannt. :D

              gibts auch konstruktive post?

              Das ist insofern konstruktiv, dass Du jetzt weisst, wie das Problem anzufassen ist. Er wird dir keine Komplettloesung liefern.

              z.b. wie ich im php-script wo es ja hinlaeuft das abfangen kann?

              Dazu findest Du hier im Forum und im restlichen Internet Loesungen und Ansaetze. wenn ich nicht irre wurde htmlspecialchars auch schon genannt. Das php Manual laesst sich ueber entsprechende Befehle hinreichend aus.

              Wenn Du Daten in einer DB speicherst, informier dich gleich mit ueber SQL-Injection.

              pser eben nach wie vor im javasript?

              Wus?
              Soll das 'oder' heissen? Im Javascript, wie man die hier an verschiedenen stellen mitgeteil hat, gar nicht. JS ist denkbar ungeeignet fuer sowas.

              --
              Wenn Du eine Antwort nicht verstehst, trau dich und frag nochmal nach.
               
  2. Wie kann ich mit Javacript verhindern,
    dass scripte oder urls in mein Formular eingegeben werden koennen?

    Zusätzliche Frage: Ein JavaScript-Schutz ist immer clientseitig und daher aushebelbar. Hast du einen serverseitigen Schutz? Falls nein, hat der oberste Priorität, erst danach solltest du dich um clientseitige Geschichten kümmern (die sind aber optional und eher das Sahnehäubchen).

    --
    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
    Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
    1. Wie kann ich mit Javacript verhindern,
      dass scripte oder urls in mein Formular eingegeben werden koennen?
      Zusätzliche Frage: Ein JavaScript-Schutz ist immer clientseitig und daher aushebelbar. Hast du einen serverseitigen Schutz? Falls nein, hat der oberste Priorität, erst danach solltest du dich um clientseitige Geschichten kümmern (die sind aber optional und eher das Sahnehäubchen).

      nee, habe ich nicht, wie mach ich das?

    2. Wie kann ich mit Javacript verhindern,
      dass scripte oder urls in mein Formular eingegeben werden koennen?
      Zusätzliche Frage: Ein JavaScript-Schutz ist immer clientseitig und daher aushebelbar. Hast du einen serverseitigen Schutz? Falls nein, hat der oberste Priorität, erst danach solltest du dich um clientseitige Geschichten kümmern (die sind aber optional und eher das Sahnehäubchen).

      nein, wie kann ich das machen?

      1. Wie kann ich mit Javacript verhindern,
        dass scripte oder urls in mein Formular eingegeben werden koennen?
        Zusätzliche Frage: Ein JavaScript-Schutz ist immer clientseitig und daher aushebelbar. Hast du einen serverseitigen Schutz? Falls nein, hat der oberste Priorität, erst danach solltest du dich um clientseitige Geschichten kümmern (die sind aber optional und eher das Sahnehäubchen).

        nein, wie kann ich das machen?

        du könntest zb dafür sorgen, dass die zeichen < > " ' und & maskiert werden, wie hier im forum

        somit kann keiner <script type="text/javascript" src="http://example.com/boeses_script.js"></script> einbinden - es erscheint als normaler text und ist wirkungslos

        in php heisst die funktion z.B. htmlspecialchars, in vbscript/asp kommst du mit server.htmlencode weiter

  3. Hi,

    Wie kann ich mit Javacript verhindern,
    dass scripte oder urls in mein Formular eingegeben werden koennen?

    durch Nichtstun. In Formularfelder werden keine Scripts und auch keine URLs eingegeben, sondern Texte. Es kommt darauf an, was Du anschließend mit diesen Texten machst.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes