BaJu: DRINGEND: Gibt es JavaScript-Sicherheitsprobleme?

hallo,

Bitte dringend um Antworten:
Ich bin designerin und stehe gerade vor der Produktion einer großen Seite.
Dafür arbeite ich mit Programmieren zusammen, die mir sagen, JS
könne aus Sicherheitsprobleme nicht benutzt werden.

Ich selber setze JS ein und hätte gerne Informationen über:

a) Wieviele haben JS deaktiviert?
b) Inwieweit ist JS nicht inzwischen absoluter Standart?

dank…
BaJu

  1. a) Wieviele haben JS deaktiviert?

    wenn das einer wüßte...

    b) Inwieweit ist JS nicht inzwischen absoluter Standart?

    weil JavaScript eigentlich nur von Netscape stammt.

    es gibt immer wieder einige Funktionen, mit denen es möglich ist eine daeti lokal auf der Festplatte eines Users auszuspionieren. Allerdings sollte man dabei bedenken:
    -> diese Funktionen sind - meines Wissens nach - noch nie für eine kriminelle Aktion verwendet worden.
    -> die Browserhersteller bieten immer sehr schnell Patches um das Loch zu stopfen.

    Leider tun einige Zeitschriften immer wieder so, als wenn es nur für Datenspionage zu nutzen ist.

    1. es gibt immer wieder einige Funktionen, mit denen es möglich ist eine daeti lokal auf der Festplatte eines Users auszuspionieren. Allerdings sollte man dabei bedenken:
      -> diese Funktionen sind - meines Wissens nach - noch nie für eine kriminelle Aktion verwendet worden.
      -> die Browserhersteller bieten immer sehr schnell Patches um das Loch zu stopfen.

      Leider tun einige Zeitschriften immer wieder so, als wenn es nur für Datenspionage zu nutzen ist.

      Aber sind das nicht Sicherheitslücken in den Browsern?
      Inwieweit  gibt es wirklich noch gefährliche JavaScripte ?

      1. Aber sind das nicht Sicherheitslücken in den Browsern?
        Inwieweit  gibt es wirklich noch gefährliche JavaScripte ?

        noch gefählichER oder was ??? - reicht das nicht - wenn in der Datei die PIN-Nummer vom Konto steht (oder so was)

        Kai Lahmann

        1. Hi,

          Aber sind das nicht Sicherheitslücken in den Browsern?
          Inwieweit  gibt es wirklich noch gefährliche JavaScripte ?

          noch gefählichER oder was ??? - reicht das nicht - wenn in der Datei die PIN-Nummer vom Konto steht (oder so was)

          da sehe ich keine Gefahr. Selbst wenn wir mal davon ausgehen, daß die Position einer solchen Datei bekannt ist (was sowohl unwahrscheinlich als auch zwingend notwendig ist), muß der Browser die Datei noch übertragen. Dazu gibt es AFAIK nur eine einzige Möglichkeit (neben manueller Eingabe der Daten): <input type=file>. Die Browser erlauben es aber nicht, diesem Feld einen Defaultvalue zu übergeben oder mit JavaScript später einen Wert zuzuweisen, dies muß _immer_ durch den Benutzer geschehen.

          Wenn Du allerdings eine funktionierende Lösung kennst, z.B. den Inhalt meiner c:\autoexec.bat ohne mein Wissen oder wenigstens ohne daß ich es bei normal trägem Surfverhalten verhindern kann auszulesen, dann poste sie bitte!

          Cheatah

          1. Hi & Vielen dank für alle antworten bisher, insb. die von Cheatah!

            ich sehe es auch so, daß es wahrscheinlichdas Sinnvollste ist, eine
            Seite zu bauen, diesowohl mit als auch ohne JS funktioniert.
            Dies bedeutet, daß die auf keinen Fall die Navigation darauf
            beruhen darf & daß der Benutzer keine Warnmeldung bekommt,
            wenn er JS nicht aktiviert hat, bzw. einen veralteten Browser
            benutzt.

            Außerdem bedeutet es (worauf Cheatah auch hingewiesen hat), daß
            alle nicht vorhandene Objekte vorher abgefragt werden müssen.

            Ich glaube nicht, daß Daten auf der Festplatte mittels JS gelesen
            werden können, geschweige denn auch noch übermittelt
            (-> Kai Lahmann).

            Ansonsten habe ich noch in meinem dicken O‚Reilley nachgeguckt,
            wo folgendes stand:
            a) daß der Großteil der Sicherheitslücken mit Navigator 2.02 beseitigt
              wurden (z.B. daß, es möglich war, das history-Erray in Bezug auf
                die besuchten URLs auszulesen, und daß es möglich war, automatisch
              & unbemerkt e-Mails zu verschicken)
            b) daß es daraufhin starke Sicherheitsbeschränkungen gab, die auch
              teilweise sehr die Funktionalität von JS beeinträchtigen. Vor allem
              eine mit der eine ganze Kategorie von Sicherheitslücken
              abgedichtet wurde: JS kann die Eigenschaften von Fenstern & Dokumenten  
              von anderen Servern nicht lesen.
            c) seit Navigator 3.0 gibt es (versuchsweise) Data-Tainting, das anscheinend
              auf dem Ansatz beruht, den Export vertraulicher Daten zu verbieten, bzw. allen
              JS-datenwerten einen Wert mitzugeben, der anzeigt, ob er vertraulich
              Daten enthält. Dies funktioniert auch, wenn ein "infizierter" String zu
              einem "nichtinfizierten" hinzugefügt wird, als "angehängt".

            Diesem Sicherheitskonzept ist laut O‚Reilly sehr mächtig & vertrauenswürdig.
            Ich würde mich dem anschließen, trotzdem so wie oben verfahren (schnief…).

            gruß,
            BaJu

      2. Hallo BaJu (== Bajuware?<g>)

        Bitte dringend um Antworten:

        Ich bin designerin und stehe gerade vor der Produktion einer großen Seite.
        Dafür arbeite ich mit Programmieren zusammen, die mir sagen, JS könne aus Sicherheitsprobleme nicht benutzt werden.

        Wenn Du die Seite gestaltest, wirst Du sie schon für Deine/Eure Besucher schon sicher gestalten, oder? Sowieso ist bei Projekte, die auf große Öffentlichkeit angewiesen sind, eine <noscript>-Version (will sagen, eine Extra-Version ohne JS) angebracht.

        Ich mit meiner nur-fun-Seite, auf der ich nichts zu verkaufen, nichts zu präsentieren, außer dem Spaß an der Selbstdarstellung, kann mir dagegen leisten, meine Seite in nur einer Version, eben mit den JavaScripts zu veröffentlichen.

        Inwieweit  gibt es wirklich noch gefährliche JavaScripte ?

        JavaScripts, die beim user etwas zerstören, gibt es IMHO nicht. Aber Manipulationen in der Art, einen User gegen seinen Willen auf eine bestimmte Webseite zu locken, gibt es schon...

        Siehe <../../sfarchiv/1999_1/t02218.htm>

        Bis danndann

        PAF (patrickausfrankfurt)

  2. Moin BaJu, moin Kai,

    IMHO ist JavaScript relativ sicher, weil es (so weit ich weiß) eben _keine_ Möglichkeit gibt, Dateien auf dem lokalen Rechner zu lesen und zum Server zu übermitteln!

    Kai's Beispiel mit der PIN kann sich nach meiner Meinung nur auf ein Eingabe beziehen, die der User tätigt. Und: eingegebene und übermittelte Daten sind _nie_ sicher! (Hat aber nichts mit JavaScript zu tun!)

    Aber vor allen Dingen: um JavaScript selbst zu verwenden muß man sich keinerlei Gedanken um Sicherheitslücken in eben demselben machen! Man muß diese Lücken ja nicht nutzen; und durch Verwendung von JS auf den eigenen Seiten kann mit _absoluter Sicherheit_ niemand ins eigene Netz einbrechen!

    Höchstens umgekehrt würde ein Schuh daraus, aber man kann wohl kaum die (Netz-)Welt daran hindern, JS oder sonst was zu benutzen!

    Also: gegen JS spricht nur eins (oder zwei?):
    1.) alte Browser verstehen es nicht und
    2.) die neuen Browser verstehen es sehr unterschiedlich!

    Gruß
    Dirk

  3. Hi!

    a) Wieviele haben JS deaktiviert?

    Ich glaube so ca. 5 bis 10%, bin aber nicht sicher.

    b) Inwieweit ist JS nicht inzwischen absoluter Standart?

    Auch wenn's oft benutzt wird, muss es doch kein Standard sein. Oder haeltst Du das DOC-Format von Microsoft auch fuer einen Standard? (Falls ja, dann versuch mal eine Word97-Datei mit Word6 aufzumachen.)

    Wenn man vorsichtig ist (also nicht jeden neusten Schnickschnack einsetzt), duerften die Browser ab Netscape 3 bzw IE 4 keine Probleme machen. Aeltere Browser koennen's halt nicht. Musst dafuer sorgen, das bei diesen keine Fehlermeldungen auftreten, und dass Deine Seiten auch ohne JS nicht wesentlich an Qualitaet verlieren, vor allem navigierbar bleiben.

    Ansonsten schliesse ich mich Dirk an (vor allem die Sache mit Datei von der Platte lesen).

    Calocybe

  4. Hi,

    Ich bin designerin und stehe gerade vor der Produktion einer großen Seite.
    Dafür arbeite ich mit Programmieren zusammen, die mir sagen, JS
    könne aus Sicherheitsprobleme nicht benutzt werden.

    das ist IMHO eine veraltete Ansicht. In den Anfangszeiten gab es sicherlich Probleme, aber mittlerweile sind die Vorkehrungen so streng, daß man manchmal für absolut "ungefährliche" Aktionen (auslesen der URL eines anderen Frames) Umwege finden muß oder es sogar gar nicht machen kann. Siehe dazu auch meine Antwort auf Kai Lehmann.

    Ich selber setze JS ein und hätte gerne Informationen über:

    a) Wieviele haben JS deaktiviert?

    Die Statistik meiner Homepage sagt:
    7.46% benutzen kein JavaScript bzw. haben es deaktiviert. Vom Rest haben
    53.31% einen JavaScript 1.2 fähigen Browser,
    41.14% einen JavaScript 1.3 fähigen Browser,
    3.17% einen JavaScript 1.0 fähigen Browser,
    2.34% einen JavaScript 1.1 fähigen Browser.
    Diese Daten sind nicht unbedingt repräsentativ, dürften aber so ungefähr hinhauen :-)

    b) Inwieweit ist JS nicht inzwischen absoluter Standart?

    Seit Netscape 2 und MSIE 3 ist JavaScript "rudimentär vorhanden". Halbwegs bis ziemlich ausgereift würde ich es ab NS 3 und MSIE 4 nennen. Auch Opera beherrscht JavaScript, allerdings bin ich mir nicht über das Ausmaß im Klaren.

    Sagen wir es so: Die neuen Browser beherrschen es. Wenn man es vernünftig programmiert ist nichts dagegen zu sagen - sofern die Homepage auch ohne JS absolut funktionstüchtig ist!

    Mit "vernünftig programmieren" meine ich, daß die richtige Version angegeben wird (<script language="JavaScript1.2">), der Scriptteil auskommentiert wird, ggf. ein <noscript>-Bereich erstellt wird, und vor allem daß eventuell(!) nicht vorhandene Objekte geschickt abgefragt werden. Beispiel:

    In einem Frameset soll in einem Nachbarframe eine Funktion test() ausgeführt werden. Statt einfach
    parent.framename.test()
    zu schreiben, benutzt man:
    if (parent.framename) if (parent.framename.test) parent.framename.test();

    Nicht vergessen das Semikolon am Ende :-)
    Die Prüfung von if (parent) kann man sich übrigens sparen, weil parent im Zweifelsfall identisch mit self ist, sprich es ist immer vorhanden.

    Ich hoffe das war jetzt nicht zu verwirrend, wenn doch - nachfragen :-)

    Cheatah

  5. HI !

    ich denke es kommt auf das JS an, daß zu nutzt.

    ich behaupte jetzt einfach mal, das eine stinknormale homepage kein JS risiko hat. was soll an häufig verwendeten "onmouseover" sachen gefährlich sein?

    das ist meine bescheidene meinung

    Fab