Phil Z.: Verwendung von Javascript - Ein Tabu?

Hey,
ich würde gerne mal ein paar Meinungen über die Verwendung von JavaScript einsammeln.
Javascript bringt Sicherheitslücken mit, Javascript kann die Seite für manche Besucher unbenutzbar machen aber sie kann auch im gegenteil für einen höheren Sicherheitsstatus sorgen und die Bedienbarkeit der Seite erhöhen.

Ich stehe davor ein neues Projekt fertig zustellen. Ich hätte genaue Vorstellungen was das lesen der Seiten und die Navigierbarkeit erhöhen würden. Aber dies ist nur mit Javascript möglich.

Liebe Grüße

Philipp Zentner

  1. Hallo

    Ich hätte genaue Vorstellungen ...

    Du hast sie also nicht, oder wie jetzt? ;-)

    ... was das lesen der Seiten und die Navigierbarkeit erhöhen würden. Aber dies ist nur mit Javascript möglich.

    Solange die Seite auch ohne diese Features benutzbar ist, was sollte dagegen sprechen?

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.2
    1. Hi!

      Ich hätte genaue Vorstellungen ...

      Du hast sie also nicht, oder wie jetzt? ;-)

      Doch ich habe ;)

      Solange die Seite auch ohne diese Features benutzbar ist, was sollte dagegen sprechen?

      Die Seite ist besuchbar und einiges ist auch zu erreichen aber den Teil den ich mit Javascipt, in dem Fall einblenden würde, an den käme man ja dann nicht ran?!

      lg

      phil

      1. Hallo

        Solange die Seite auch ohne diese Features benutzbar ist, was sollte dagegen sprechen?

        Die Seite ist besuchbar und einiges ist auch zu erreichen aber den Teil den ich mit Javascipt, in dem Fall einblenden würde, an den käme man ja dann nicht ran?!

        Man kann diese Elemente doch bestimmt auch über einen Link zugänglich machen, oder?

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.2
      2. Hallo Phil,

        lass Dich nicht verrueckt machen!
        Es stimmt,
        der kaum wahrnehmbare Anteil der IE-User kann mit JavaScript u.U. Pech haben.
        ebenso gibt es viele Web-Autoren, die JavaScript zum Leidwesen der User anwenden.
        Welche Konsequenzen soll/muss man daraus ziehen?

        Weil es gerade so schoen passt, Beispiele aus den IT-freien Leben.

        • Microwelle:
            immer wieder kommt es vor, dass die Dinger ohne ersichtlichen Grund abfackeln.
            Uns selbst ist es 2000 so ergangen, wir waren in Urlaub und die Wohnung brannte aus.
            Klar, dass wir seit dem nie wieder eine Microwelle angeschafft haben.
            Die Industrie hat es ueberlebt und der Rest der Menschheit nie erfahren.
        • Automobile:
            natuerlich haben unsere Verkehrsgegner die Pappe im Lotto gewonnen.
            Und selbstverstaendlich sind Reisschuesseln keine Autos.
            Aber haben diese Grundaussagen irgendwelche Auswirkungen?

        Und nun erklaer mal, warum Du JavaScript in Frage stellen willst.
        Setze Dich an Deinen PC und mache es besser, vielleicht merkt es jemand
        und eifert Dir nach, aber lass Dich nicht aus der Ruhe bringen.

        Gruss Norbert

      3. Hi,

        Die Seite ist besuchbar und einiges ist auch zu erreichen aber den Teil den ich mit Javascipt, in dem Fall einblenden würde, an den käme man ja dann nicht ran?!

        gib dem auszublendenden Teil eine Klasse die ein display none enthält. Diese Klasse schreibst Du im head per JS rein.
        Die Inhalte sind so durchsuchbar, ohne JS alle sichtbar und können mit js über einen Klassenwechsel ein/ausgeblendet werden.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
  2. Hallo,

    ich würde gerne mal ein paar Meinungen über die Verwendung von JavaScript einsammeln.

    dann nur zu!

    Javascript bringt Sicherheitslücken mit, ...

    Soweit ich weiß, nur im IE, der den Unterschied zwischen Javascript und der Microsoftschen Interpretation JScript nicht so genau nimmt. JScript erlaubt teils bedenkliche Zugriffe und Eingriffe in System-Interna, vor allem, wenn man zusätzlich auch noch ActiveX zulässt.

    Javascript kann die Seite für manche Besucher unbenutzbar machen

    Ja, vor allem, wenn essentielle Funktionen vollständig von JS abhängig sind.

    aber sie kann auch im gegenteil für einen höheren Sicherheitsstatus sorgen und die Bedienbarkeit der Seite erhöhen.

    Woran denkst du bei dem "höheren Sicherheitsstatus" durch Javascript? Ich kann mir nicht vorstellen, dass durch den Einsatz von Javascript irgendwie die Sicherheit verbessert werden könnte.

    Dass die Bedienbarkeit und Benutzerfreundlichkeit der Seite mit Javascript verbessert werden kann, steht außer Zweifel. Sofortige Validierung von Eingaben, kontextabhängige Defaultwerte in Formularen und pfiffige Navigationsmethoden sind gute Beispiele dafür.
    Leider kursieren aber auch unzählige Seiten im Netz, auf denen Javascript auf eine Weise eingesetzt wird, die den Benutzer mehr behindert als unterstützt (z.B. ebay, Postbank-Onlinebanking) oder durch Popups und andere unerwartete Reaktionen belästigt.

    Allgemein finde ich den Einsatz von JS unter folgenden Bedingungen okay:

    1. Es darf den Besucher nicht in seinen Aktionen behindern
    2. Die Seite muss, eventuell mit Ästhetik- oder Komforteinbußen, auch ohne JS voll nutzbar sein.

    Ich stehe davor ein neues Projekt fertig zustellen. Ich hätte genaue Vorstellungen was das lesen der Seiten und die Navigierbarkeit erhöhen würden. Aber dies ist nur mit Javascript möglich.

    Gib doch mal konkrete Beispiele ...

    Schöne Feiertage auch,
     Martin

    --
    Ich bin 30. Ich demensiere apokalyptisch.
      (Orlando)
    1. Hi.

      Woran denkst du bei dem "höheren Sicherheitsstatus" durch Javascript? Ich kann mir nicht vorstellen, dass durch den Einsatz von Javascript irgendwie die Sicherheit verbessert werden könnte.

      Bei einem Login-System zum Beispiel, lass ich bevor das Formular abgeschickt wird, name und pw noch verschlüsseln, erst dann wird das Formular weiter abgeschickt.

      Gib doch mal konkrete Beispiele ...

      Ich stelle eine Reihe von Programmen grob vor.
      Wenn man einen ausführlichen Testbericht sehen will,
      soll man auf "Ausführlichen Testbericht" klicken können und nun öffnet sich in der Mitte des Bildschirms ein großes Div Element mit dem ausführlich Testbericht. Kein Popup, sondern praktisch ein Layer der mit CSS und mit Hilfe von display:none ein und ausgeblendet wird. Alles andere um diesen Layer herum(Der Rest des Fensters wo man noch die Hauptpage sieht) wird verdunkelt aber mit Opasity so das man noch was im Hintergrudn erkennt, so kann man sich besser auf den Testbericht konzentrieren, das gleiche Prinzip gibts dann auch für die Besucherbewertung der einzelnen Produkte.

      Lg

      Phil

      1. Hallo,

        Woran denkst du bei dem "höheren Sicherheitsstatus" durch Javascript? Ich kann mir nicht vorstellen, dass durch den Einsatz von Javascript irgendwie die Sicherheit verbessert werden könnte.

        Bei einem Login-System zum Beispiel, lass ich bevor das Formular abgeschickt wird, name und pw noch verschlüsseln, erst dann wird das Formular weiter abgeschickt.

        das erhöht aber nicht die Sicherheit. Gut, wenn einer den Datenverkehr abhört, kann er aus den verschlüsselten Daten vielleicht nicht so ohne weiteres das Original-Passwort bzw. den Original-Usernamen ablesen.
        Aber das muss er ja auch gar nicht. Es genügt ja, wenn er genau diese verschlüsselten Bröckchen wieder an den Server schickt, um sich als berechtiger User auszugeben und Mist zu machen. Ob ich in einem Request nun im Klartext ?user=Manni&pw=trulla übertrage oder ?user=G7E76HLXD?pw=K4F04H, ist dem Quertreiber doch egal.

        Wenn man einen ausführlichen Testbericht sehen will, soll man auf "Ausführlichen Testbericht" klicken können und nun öffnet sich in der Mitte des Bildschirms ein großes Div Element mit dem ausführlich Testbericht. Kein Popup, sondern praktisch ein Layer der mit CSS und mit Hilfe von display:none ein und ausgeblendet wird. Alles andere um diesen Layer herum(Der Rest des Fensters wo man noch die Hauptpage sieht) wird verdunkelt aber mit Opasity so das man noch was im Hintergrudn erkennt, so kann man sich besser auf den Testbericht konzentrieren, das gleiche Prinzip gibts dann auch für die Besucherbewertung der einzelnen Produkte.

        Okay, das ist ohne JS kaum nachzubilden.
        Ich würde aber trotzdem die Inhalte (Testberichte) zunächst als normale HTML-Dokumente verlinken. Damit ist sichergestellt, dass ein Besucher ohne JS sie zumindest abrufen und lesen kann.
        Für diejenigen *mit* JS würde ich einen onclick-Handler im Link vorsehen, der die Funktion mit der "Luxusversion" aufruft. Die ursprüngliche Link-Funktionalität wird mit einem return (false) abgewürgt.

        So long,
         Martin

        --
        Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
        Außer bei Microsoft. Da ist es umgekehrt.
        1. Hi.
          »»Ob ich in einem Request nun im Klartext ?user=Manni&pw=trulla übertrage oder ?user=G7E76HLXD?pw=K4F04H, ist dem Quertreiber doch egal.
          Hast recht ^^..

          Wenn man einen ausführlichen Testbericht sehen will, soll man auf "Ausführlichen Testbericht" klicken können und nun öffnet sich in der Mitte des Bildschirms ein großes Div Element mit dem ausführlich Testbericht. Kein Popup, sondern praktisch ein Layer der mit CSS und mit Hilfe von display:none ein und ausgeblendet wird. Alles andere um diesen Layer herum(Der Rest des Fensters wo man noch die Hauptpage sieht) wird verdunkelt aber mit Opasity so das man noch was im Hintergrudn erkennt, so kann man sich besser auf den Testbericht konzentrieren, das gleiche Prinzip gibts dann auch für die Besucherbewertung der einzelnen Produkte.
          Okay, das ist ohne JS kaum nachzubilden.

          Ich habe auch keine Ahnung wie ich das überhaupt richtig realisieren soll da ich mich mit JS nicht auskenne.

          Ich würde aber trotzdem die Inhalte (Testberichte) zunächst als normale HTML-Dokumente verlinken. Damit ist sichergestellt, dass ein Besucher ohne JS sie zumindest abrufen und lesen kann.

          Das ist mir klar wie das geht.

          Für diejenigen *mit* JS würde ich einen onclick-Handler im Link vorsehen, der die Funktion mit der "Luxusversion" aufruft.

          Das ist mir auch klar.

          Die ursprüngliche Link-Funktionalität wird mit einem return (false) abgewürgt.

          Wie das geht weiß ich leider nicht. =/

          Ich will mich eigendl vorerst nicht groß mit JS auseinadner setzen ist das Problem. Bisschen kann ich ja..
          ich werd wohl irgendwo mal nachnem Skript suchen..
          hmm.

          Lg, danke, schöne Feiertage
          Phil

          1. Hi,

            Ich habe auch keine Ahnung wie ich das überhaupt richtig realisieren soll da ich mich mit JS nicht auskenne.
            [...]
            Wie das geht weiß ich leider nicht. =/

            Ich will mich eigendl vorerst nicht groß mit JS auseinadner setzen ist das Problem. Bisschen kann ich ja..

            Und mit PHP scheint's sich noch aehnlich zu verhalten, wenn man sich deine Fragen in diesem Themenbereich hier anschaut.

            Und du behauptest, du stuendest "davor ein neues Projekt fertig zustellen"?
            Ich wuerde eher sagen, du befindest dich ganz am Anfang deiner Lernkurve. Also mach' mal'n bisschen langsam, und versuch nicht gleich alles auf einmal zu machen. Sonst bleibt das Lernen naemlich wirklich auf der Strecke, und der Qualitaet des Projektes ist es sicher auch kaum foerderlich.

            MfG ChrisB

            1. Hi.

              Ich wuerde eher sagen, du befindest dich ganz am Anfang deiner Lernkurve. Also mach' mal'n bisschen langsam, und versuch nicht gleich alles auf einmal zu machen. Sonst bleibt das Lernen naemlich wirklich auf der Strecke, und der Qualitaet des Projektes ist es sicher auch kaum foerderlich.

              Naja geht ne, das Problem ist das ich jetzt ne ziemlich große Pause bzw eigendlich so ziemlich ein halbes Jahr Pause gemacht habe, Schulstress usw.. deswegen muss ich mich erst wieder reindenken in die Lösungswege..

              Allerdings das mit den fremden Seiten durchforsten und auswerten habe ich ehrlich gesagt noch nie gemacht.

              LG

              Phil Z.

          2. Hallo!

            Die ursprüngliche Link-Funktionalität wird mit einem return (false) abgewürgt.

            <a href="testbericht.html" onclick="luxusversion(); return false">Testbericht zu XY</a>

            ciao, Lukas

            --
            Nach einem Korrspondentenbericht der New York Times aus der umkämpften Stadt, wurden zur „Ausschaltung eines einzigen feindlichen Scharfschützen mehrere 500-Pfund-Bomben, 35 Artilleriegranaten des Kalibers 255, zehn Schüsse aus der Abrams-Panzerkanone sowie 30 000 Patronen leichter Munition benötigt”. „Die Gebäude waren daraufhin Ruinen”, schreibt die New York Times, „aber der Scharfschütze schoss weiter...”
            1. Hello,

              Die ursprüngliche Link-Funktionalität wird mit einem return (false) abgewürgt.

              <a href="testbericht.html" onclick="luxusversion(this.href); return false;">Testbericht zu XY</a>

              Und so muss man die Hyperreferenz sogar nur einmal angeben. Das ist auch für die Pflege des Programmes  echtger Luxus. Die Funktion luxusversion() wird nun mit der Referenz als Argument aufgerufen.

              Harzliche Grüße vom Berg und Frohe Weihnachtszeit

              Tom

              --
              Nur selber lernen macht schlau

        2. Hallo Martin,

          Bei einem Login-System zum Beispiel, lass ich bevor das Formular abgeschickt wird, name und pw noch verschlüsseln, erst dann wird das Formular weiter abgeschickt.

          das erhöht aber nicht die Sicherheit. Gut, wenn einer den Datenverkehr abhört, kann er aus den verschlüsselten Daten vielleicht nicht so ohne weiteres das Original-Passwort bzw. den Original-Usernamen ablesen.
          Aber das muss er ja auch gar nicht. Es genügt ja, wenn er genau diese verschlüsselten Bröckchen wieder an den Server schickt, um sich als berechtiger User auszugeben und Mist zu machen. Ob ich in einem Request nun im Klartext ?user=Manni&pw=trulla übertrage oder ?user=G7E76HLXD?pw=K4F04H, ist dem Quertreiber doch egal.

          Ja und nein. Wenn man Challenge-Response mit Zufallswerten einsetzt, dann nicht unbedingt.

          Beispiel: Auf dem Server liegen sowohl Username als auch Passwort im Klartext vor.

          Der Server generiert beim Anzeigen des Loginformulars einen zufälligen String, den er sich auch in der Session merkt. Der Zufallsstring wird an den Client gesendet.

          Wenn JS aktiv ist, entfernt JS vor dem Submit das Passwort aus dem Passwortfeld und füllt ein Hidden-Feld nach folgedem Schema auf: Hiddenfeld = Hashfunktion (Zufallsstring + Username + Passwort).

          Der Server bekommt die Antwort, kennt bei sich in der Session noch den Zufallsstring und kann mit der Information, welcher Benutzername es ist, den gleichen Hashwert erzeugen. Diesen vergleicht er mit dem, den er vom Client bekommen hat. Stimmen sie überein, wurde das Passwort korrekt eingegeben.

          Wenn der Server jedes Mal einen anderen Zufallswert schickt, dann kann ein Angreifer sich NICHT erfolgreich einloggen.

          ALLERDINGS kann ein Angreifer - wenn er schon mitlesen kann - weiterhin die komplette andere Kommunikation mitlesen.

          Sprich: Dieses Verfahren erhöht die Sicherheit nur dann, wenn die Zugangsdaten VIEL wichtiger sind als die Daten, die eigentlich übertragen werden. Dies kann zum Beispiel der Fall sein, wenn man einen Account auf einem Server hat, der auch für z.B. SSH gilt, den man aber auch zum Abrufen der Mails über ein Webmailinterface benutzt. Natürlich wäre die Verwendung von SSL für das Webmailinterface die VIEL BESSERE Lösung, aber manchmal steht einem das nicht zur Verfügung und da ist dieses bisschen zusätzliche Sicherheit durch Challenge-Response unter Umständen bereits ausreichend, um einen Unterschied zu machen.

          Viele Grüße,
          Christian