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 (https://heise.de/-3432759).
    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 $ 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)
      BlueGriffon ehem. KompoZer (ein YSIWYG-HTML-Editor)
      Tor-Browser (als Onion-Proxy verbindet er sich mit dem Tor-Netzwerk)
    • 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)
    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 KJS
    • 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


Welchen Gefahren sind wir bei der Nutzung von Internetdiensten ausgesetzt?
(Diese teilen wir zunächst in direkte und indirekte Gefahren ein)

2.3.1
    Indirekte Gefahren wie Datenschutzprobleme lauern bereits als Standard-Funktion in jedem Browser
    • Zum Datenschutz (natürlicher Personen) zwingt uns das BDSG und die europäische DSGVO
      aber zahlreiche Informationen liefert ein Browser automatisch (oder sie können über Scripting leicht abgefragt werden)
      Das Bundesdatenschutzgesetz (BDSG) ...
       Es setzt seit 2018 in seiner Neufassung (BGBl. 2017 I S. 2097) auch die europäischen Datenschutzrichtlinien um
       (da es den Mitgliedstaaten nicht erlaubt ist, die DSGVO national abzuschwächen oder zu verstärken)
      Zur Datenschutz-Grundverordnung ...
       Die europäische DSGVO ist eine Verordnung der Europäischen Union,
       mit der die Regeln zur Verarbeitung personenbezogener Daten durch,
       sowohl private wie öffentliche Datenverarbeiter, EU-weit vereinheitlicht werden.
  • Erstes Problem die "Kekse" im Browser (Cookies)
  • Mit den Referrer-Adressen übermitteln Browser (auch) sensible Informationen (ermöglicht Phishing)
  • Zunehmend täuschen Phishing-Webseiten mit Homographen in ihrer Adresse Besuchern eine falsche Identität vor

2.3.2
    Direkte Gefahren entstehen bei einer Programmausführung mit Userrechten (im Extremfall Systemrechten).
    Ursache sind häufig Leichtsinn/Unwissenheit oder Fehler der im Browser integrierten Web-Programmiersprachen und (bei älteren Browsern) PlugIns.
    Dieses führt (im Extremfall) dazu, dass auf einem System Schadenssoftware installiert wird.
    • Einteilung von Schadenssoftware (Malware)
    • Verbreitungsgrad von Schadenssoftware (Malware)
    • Direkte Gefahren durch offene TCP Ports (Serverdienste)
    • Gefahr durch Starten geladener Dateien
    • Aktuelle Infos zu Sicherheitslücken (liefern z.B. CERT's)

2.4 Downloadadressen aktueller Browser


2.5 Aufbau des Gecko-Verzeichnisbaumes
  • Welche Daten sind in einem Profil abgelegt?
    DateiInhaltBeschreibung
    prefs.js Benutzereinstellungen Die Datei user.js (wenn vorhanden) überschreibt die prefs.js Vorgaben
    places.sqlite Chronik Liste der besuchten Webseiten
    favicons.sqlite u. der Ordner bookmarkbackupsLesezeichen Firefox-Lesezeichen
    key4b.db und logins.json Passwörter Die Schlüsseldatenbank liegt in der key4.db und die Passwörter werden in der Datei logins.json 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
    - https://support.mozilla.org/de/kb/benutzerprofile-mit-ihren-persoenlichen-daten
  • 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://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.Firma.com security.ssl.renego_unrestricted_hosts, "xauth.entitlement.Firma.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
    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 (für aktuelle Version) 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
    Die Anforderung zur Signierung von Extensions übergehen extensions.langpacks.signatures.required, false
    Browser-Erweiterungen im privaten Modus deaktivieren extensions.allowPrivateBrowsingByDefault, false
    WebP-Grafikformat-Unterstützung
    (erst ab Version 65 problemfrei)
    image.webp.enabled, true
    image.http.accept, image/webp,*/*


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