Logo

Kurs: Internet/Intranet Einstieg, Entwicklung des Internet Inet-Kurs (INHALT) Suche im Internet/Intranet
Der Browser


2.1Die Browserentwicklung
  • Entwicklung der WorldWideWeb-Clientsoftware (Browser)
    1945 Der us-amerikanische Ingenieur und Analogrechner-Pionier Vannevar Bush entwickelte in seinem 1945 publizierten "Essay As we may think" das Konzept des Memory-Extender, dass als ein Vorläufer des Personal Computers und des Hypertextes gilt.
    1989 Tim Berners-Lee programmiert den ersten textbasierten Browser "WorldWideWeb".
    - Ort: am CERN
    - Sprache: in Pascal
    - Hardware: auf einer NeXT-Workstation
    Sein Text Information Management gilt als Grundsteinlegung für das World Wide Web,
    auch wenn es zunächst kaum Beachtung fand (http://www.heise.de/tp/r4/artikel/16/16446/1.html).
    Die erste Webpräsenz war http://info.cern.ch
    1992Textuelle Alternativen:
    • Lynx wurde 1992 an der Universität von Kansas entwickelt, und war (durch seine Textschnittstelle) bei blinden und sehbehinderten Benutzern populär. Somit kann er (auch heute noch) zur Überprüfung der Barrierefreiheit einer Site verwendet werden.
    • w3m kann zusätzlich Tabellen, Frames und z.T. auch Bilder darstellen
    1993Marc Andreessen entwickelt am National Center for Supercomputer Applications den grafikfähigen Mosaic-Browser.
    Er vereint die Grafikfähigkeit des VIOLA-Browsers mit den Lesezeichen des LYNX-Browser.
    1994Marc Andreessen gründet mit James H. Clark die Fa. Netscape.
    Es erscheint "Der Standardmacher" Netscape-Navigator, der bis zur Vers. 4.8 "closed source" war.
    Es folgten Open-Source-Versionen
    • Netscape basierte bis zur Version 7.x auf MOZILLA-Gecko enthielt aber Zusatzsoftware:
      - JAVA-VM von SUN, Flash-Player, WinAmp, RealPlayer, View-Point-Media-Player, ICQ
      - den AOL-Instand Messenger und eine Rechtschreibprüfung
    • Die Entwicklung wurde erstmalig am 15.07.2003 durch AOL gestoppt. Dennoch erschien im August 2004 eine (auf Mozilla-1.72 basierende) Version 7.2
    • Die Folgeversion 8.x basierte auf dem Firefox + IExplorer + AOL-Features
    • Die Versione 9.x verwendete ausschließlich die Gecko-Engine des Firefox. Die Entwicklung wurde mit der Version 9.0.0.6 eingestellt
    1994Der Browser Opera wird bei der norwegischen Telekomfirma Telenor durch Jon S. von Tetzchner und Geir Ivarsøy entwickelt
    - Opera führte als erster Browser Tab-Browsing und Mausgesten ein
    - Opera war nach eigener Aussage (und bei zahlreichen Leistungsvergleichen) "Der schnellste Browser der Welt"
    1994Microsoft erwirbt von der Fa. Spyglass für 2 Millionen Dollar und 1% der Einnahmen eine Mosaic-Generallizenz
    1995Aus dem Mosaic-Nachfolger (mit Codenamen O’Hare) wird der erste Internetexplorer (im Win95-Plus-Paket)
    1996Mit Amaya erscheint ein Browser (vom W3-Konsortium), der gleichzeitig "browsen" und "editieren" kann
    - so sollte es nach Tim Berners-Lee´s Idee auch sein
    - er verfügt (auch  ohne PlugIns) über eine XHTML, MathML und SVG-Unterstütztung
    1997Spyglass erhält nach Androhung einer vertraglichen Prüfung 8 Millionen $ von Microsoft (für die Mosaic-Lizenz).
    1998Aus dem von Netscape freigegebenen Quellcode entsteht der Browser MOZILLA mit der Rendering-Engine Gecko.
    Es basieren zahlreiche (nicht nur) Browser auf der Gecko-Rendering-Engine:
    • SeaMonkey als komplette Browser-Suite (ehemals Mozilla)
      Firefox (der Browser)
      Thunderbird (das E-Mail-Programm)
      Sunbird (plattformunabhängige Kalender Applikation)
      Lightning (plattformunabhängige Terminverwaltungs Applikation)
      KompoZer (der Seiten-Editor)
      SongBird (der MP3-Player)
      Miro (freies P2PTV-Programm)
    • weitere Gecko verwendende Programme sind:
      Galeon für Gnome 2.2 und Epiphany für Gnome2.4, Phoenix, Skipstone, Beonex, K-Meleon(Win), Camino (Mac-OSX), iceweasel (basiert auf Firefox), iceape (... Seamonkey), icedove (... Thunderbird) und der Tor-Browser
    2000Für die Linux-KDE Oberfläche wurde die "schlanke" Rendering-Engine KHTML entwickelt
    • Der KDE-Dateimanager konqueror verwendet die KHTML Rendering-Engine und für Java-Scripte die Engine KJS
      - Hinweis: Für die Anforderung von DE-Sites Languages=de und optional Charsets=iso-8859-1 am Beginn der kioslaverc eintragen
    • Für den Safari-Browser von Mac-OS X entkoppelte Apple, durch den Einsatz einer Adapter-Bibliothek (Wrapper) namens KWQ (quack) khtml von der KDE-Oberfläche und Qt. Es entsteht als Fork die Rendering-Engine WebKit
    2008Google-Chrome erscheint (zunächst nur für Windows XP/Vista)
    • Google-Chrome verwendet zum Rendern WebKit (von Apples-Safari-Browser)
    • Die Browser-Tabs sind nicht nur optisch sondern auch prozesstechnisch getrennt
    • Der extrem schnelle (Open Source) JavaScript-Interpreter stammt vom dänischen V8-Team

2.2 Übersicht der gängigen Internet Browser
2.3 Welche Gefahren birgt ein Browser in sich (plus Browser-PlugIns)
  • Teilen wir zunächst die Gefahren in direkte und indirekte ein

    • Indirekte Gefahren wie Datenschutzprobleme lauern bereits als Standard-Funktion im Browser
      - Informationen die dein Browser autom. liefert oder die über Scripting abgefragt werden können
      - Die Kekse im Browser (Cookies)
      - Referreradressen die ein Browser sendet
      - Informationen die über Konten ermittelt werden können
    • Direkte Gefahren entstehen häufig durch Programmausführung mit Userrechten (im Extremfall Systemrechten)
      Malwareprimäre Eigenschaft[en] der Schadsoftware
      Spyware Leitet (lokale) Informationen an Externe
      Adware Advertising (Werbung) + Software
      Trojaner Ein "nützliches" Wirtsprogramm mit versteckt arbeitenden, bösartigem Teil
      Backdoor Ermöglicht eine externe aktive/passive Kontrolle (z.B. Botnetz)
      Computervirus Verbreiten sich (durch Kopien ihrerselbst)
      Computerwurm Verbreiten sich direkt über Netzwerke
      Rootkit Rootkits tarnen sich mit Systemrechten
      Ransomware Die Lösegeld-Erpressungs-Software verhindert den Zugriff auf Daten oder die Nutzung des gesamten Computersystems
      Ursache sind häufig die im Browser integrierten Web-Programmiersprachen und PlugIns (wie in folgender Tabelle)

    Häufig verwendete Browser Erweiterung über PlugIns
    PlugIn-Tests für verschiedene Browser:

    • PlugIn-Test (der aktivierten PlugIns) über JavaScript: analyze.htm
    • PlugIn Informationen über: about:plugins bzw. chrome://components (in der Adressleiste)
    • Ab Version 52 unterstützt Firefox (mit Ausnahme von Adobe Flash) keine NPAPI-Plugins (Netscape Plugin Application Programming Interface) mehr. Auch die Plugins für Silverlight, Java und Adobe Acrobat werden nicht mehr unterstützt. Als Ersatz dienen das neue WebAssembly (Wasm-Bytecode als schnellere Alternative zu JavaScript für Mozilla, Microsoft, Google und Apple), Web-APIs und Web-Extensions. Google und Opera verwenden Flash über das Pepper-Plugin API.
      - Fehlerbehebung bei PlugIns (support.mozilla.org)
      - Adobe Flash unter Linux im Griff
      - Nach WebAssembly exportiertes Demo Panzerspiel
     Dateien
     (Dateiformate)
     PlugIn Anbieter
    (moderne Browser unterstützen nur noch Flash als NPAPI-Plugin)
    *.class
    *.swf, .apl









    *.dir, .dxr, .dcr


    *.aam
    *.pdf
    *.mov, .qt
    • Apple´s QuickTime
      Apple wird QuickTime für Windows (trotz Sicherheitslücken) nicht mehr aktualisieren. Trend Micro rät zu einer Deinstallation, da kritische Sicherheitslücken Windows Systeme angreifbar macht. Über mehrere Schwachstellen können Angreifer Schad-Code mit den aktuellen Rechten des Nutzers ausführen.
      - Download
    *.smil, ram, rpm
    • Real-Network´s RealPlayer
      - Download RealPlayer
2.4 Downloadadressen aktueller Browser


2.5 Aufbau des Gecko-Verzeichnisbaumes
  • Welche Daten sind in einem Profil abgelegt?
    DateiInhaltBeschreibung
    places.sqlite Lesezeichen und Chronik Die Datei places.sqlite beinhaltet Firefox-Lesezeichen und eine Liste aller besuchter Webseiten
    key3b.db und signons.sqlite Passwörter Die Passwörter werden in den Dateien key3b.db und signons.sqlite gespeichert
    permissions.sqlite Seitenspezifische Einstellungen Die Datei permissions.sqlite speichert viele Berechtigungen, die Seitenabhängig vergeben werden. Z.B. Pop-Up Einstellungen
    search.sqlite und der Ordner searchpluginsSuchmaschinen Die Datei search.sqlite und der Ordner searchplugins speichern die Suchmaschinen, die in der Firefox-Suchleiste verfügbar sind
    persdict.dat Persönliches Wörterbuch Die Datei persdict.dat speichert die benutzerdefinierten Wörter, die zum Firefox-Wörterbuch hinzugefügt wurden
    formhistory.sqlite Formular-Chronik Die Datei formhistory.sqlite speichert, wonach in der Suchleiste gesucht wurde und welche Daten in Formulare eingetragen wurden
    cookies.sqlite Cookies Alle Cookies werden in der Datei cookies.sqlite gespeichert. Ein Cookie beinhaltet Daten, die eine Website auf Ihrem Rechner gespeichert hat
    cert9.db Sicherheitszertifikatseinstellungen Die Datei cert9.db speichert Zertifikate vertrauenswürdiger Trustcenter (ab Firefox57 in SQlite, zuvor cert8.db)
    mimeTypes.rdf Download-Aktionen Die Datei mimeTypes.rdf speichert was getan werden soll, wenn Firefox auf einen bestimmten Dateityp stößt. Z.B. dass Firefox eine PDF-Datei mit dem Adobe-Reader öffnen soll.
    chrome/userChrome.css und chrome/userContent.cssBenutzerdefinierte Stile Optional speichern die Dateien userChrome.css und userContent.css Änderungen am Aussehen von Firefox oder von bestimmten HTML-Elementen
    urlclassifier3.sqlite Betrugsseiten-Adressen 50MB Phishing-Schutz-Datei aufgrund der von Google gesammelten Daten. (Abschalten über: Einstellungen->Sicherheit->Webseite blockieren, wenn sie als Betrugsversuch gemeldet wurde)
    webappsstore.sqlite Web Storage Auch DOM Storage oder Supercookie
  • Konfiguration der Gecko-PlugIns
    - Die aktiven Plugins lassen sich über about:plugins in der Adresszeile abfragen.
    - Unter Linux kann der Browser über Dateien (oder sym. Links) im plugins-Verzeichnis ergänzt werden
      (Die Variable MOZ_PLUGIN_PATH kann auf ein best. Verzeichnis gesetzt werden)
  • Browser, Tastenkombinationen
    - https://support.mozilla.org/de/kb/Tastaturkuerzel
  • Browserinterne Zusatzfunktionen über die Adresszeile
    - about-Kommandos
  • Alle Gecko-Browser speichern ihre Usereinstellungen in einer prefs.js Datei. Eine user.js kann aber Einstellungen der prefs.js überschreiben
    - Die prefs.js kann mit about:config in der Adresszeile einfacher durchsucht u. editiert werden. Siehe folgende Tabelle
    - http://preferential.mozdev.org/preferences.html (Die offizielle Dokumentation der Preferences)
    - http://support.mozilla.com/de/kb/Benutzerprofile Dateien im Benutzerprofil
  • Programmierung für Firefox-Erweiterungen (bzw. Gecko-basierte Software)
    - Die Applikationen waren in XUL programmierbar (XML und JavaScript). Heute sind es Webextensions.
    - Die Installation erfolgt über anklicken eines XPI-Archives
    - Die installierten Applikationen liegen in Unterordnern wie chrome, extensions, usw
    - Mit chrome://myapp/content/ sind Apps ansprechbar
    - In den Paketen befinden sich häufig 3 Unter-Packages. Content für das GUI mit JavaScripten, Skins mit CSS/PNG
  • Offizielle Liste der Gecko-Bugs
    - http://www.mozilla.org/projects/security/known-vulnerabilities.html
Die Gecko-Konfigurationsdatei prefs.js (ist über about:config bearbeitbar)

  • Funktion Preferences-Zeile
    Serverfehler "Neuverhandlung ist auf diesem SSL-socket nicht erlaubt" umgehen security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref, true
    "security warning" beim PKI-Login über entitlement.siemens.com security.ssl.renego_unrestricted_hosts, "xauth.entitlement.siemens.com"
    Ausschalten des Referer-Information
    (woher kommt der Browser)
    network.http.sendRefererHeader, 0
    Ausschalten der JavaScript-Funktion onUnload() capability.policy.default.Window.onunload, noAccess
    Browseridentifikation zum Webserver (user-agent)
    Achtung: Plugins bekommen diese Browserinfos
    general.useragent.override, "Mozilla/5.0 (iPhone;) AppleWebKit/420; U; PPC"
    Internet Keywords-Weitergabe an bestimmte Adresse keyword.URL", "http://www.google.com/search?q="
    Alle Links im aktiven Fenster/Tab öffnen browser.block.target_new_window, true
    Installationen von zusätzlichen Adressen erlauben xpinstall.whitelist.add, mozilla.kairo.at
    Maildarstellung (Sicherheits/Datenschutz) mailnews.display.*", "..."
    Speicherverbrauch auf 16MByte beschränken browser.cache.memory.capacity, 16384
    Defaultwartezeit vor Seitenaufbau (250ms->0ms) nglayout.initialpaint.delay, 0
    ext. Programmen den Zugriff auf das akt. Fenster verbieten advanced.system.supportDDEEexec, false
    Tab-Leiste nur wenn benötigt browser.tabs.autoHide, false
    Framegrenzen anzeigen layout.frames.force_resizability, true
    Erlaubt Plugins browserinterne MimeTypes zu behandeln plugin.override_internal_types, true
    Beta-Testphase beenden app.update.channel, release
    Auch verschlüsselte Seiten zwischenspeichern browser.cache.disk_cache_ssl, true
    Erweiterungen ohne Admin-Rechte installieren xpinstall.enabled, true
    Zuordnung von Protokollen zu Applikationen network.protocol-handler.app.mailto, kmail
    JavaScript-Interpreter Tracemonkey einschalten (fürs Web) javascript.options.jit.content, true
    JavaScript-Interpreter Tracemonkey einschalten (für XUL) javascript.options.jit.chrome, true
    Selektiert beim Click die komplette Adresszeile browser.urlbar.clickSelectsAll, true
    Zoom nur auf Text anwenden Browser.zoom.full, false
    Tab-Breite anpassen Browser.tabs.tabMinWidth, Wert von 50-100
    Tabs schließen ausblenden browser.tabs.closeButtons, 0=nur-aktiver, 1=Std, 2=aus, 3=nur1*Close
    IPV4-Bevorzugung abschalten network.dns.disableIPv6, false
    Die Google will mit SPDY bis 50% Ladezeiten sparen network.http.spdy.enabled, true
    Keine Tab-Bilder anzeigen
    (bei älteren Firefox Versionen)
    browser.newtabpage.enabled, false
    "browser.newtab.url", "about:blank"
    Keine Tab-Bilder anzeigen (aktuelle) browser.pagethumbnails.capturing_disabled, true
    Web Storage (auch DOM Storage oder Supercookies genannt) abschalten dom.storage.enabled, false
    Max. Größe der Storage-Cookies dom.storage.default_quota, 0
    http:// in der Adresszeile anzeigen browser.urlbar.trimURLs, false
    standortbezogenes Surfen deaktivieren geo.enabled, false
    Click to Play anstelle Plug-in-Schnittstelle NPAPI plugins.click_to_play, true
    alte Suchmaschinenauswahl browser.search.showOneOffButtons, false
    Nicht signierte Add-ons installieren xpinstall.signatures.required, false
    Bilder deaktivieren permissions.default.image, 2
    Phishing-Angriffe über Sonderzeichen-Domains durch Punycode-Anzeige verhindern network.IDN_show_punycode, true


Meinolf Mühlenjost 2018 Einstieg, Entwicklung des Internet Inet-Kurs (INHALT) Suche im Internet/Intranet