Sicherheits-Problem: IE-History "cached" Zugangs-Passworte
Bio
- browser
0 capior
Sup!
Ich programmiere gerade an einem lustigen System zur Anmeldung zu Klausuren herum.
Wir benutzen Apache mit mod_ssl und mod_auth_external zur Authentifizierung und fuer die Sicherheit etc.
Wir haben ein Meta-Tag gegen Caching von Seiteninhalten
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
Das funktioniert im (ach-so-fehlerhaften) Netscape hervorragend, nur der IE cached natuerlich trotzdem und ermoeglicht somit nach dem Ausloggen aus dem System durch einfaches "Back-Button"-Druecken wieder in das System reinzukommen, denn offensichtlich sind die Passwoerter ($ENV{'REMOTE_USER'}) gleich mit in der History gespeichert - Netscape verwirft die Passworte genau so, wie das geplant war.
Nun wollen wir natuerlich auch die IE-Nutzer vor den "gar-nicht-vorhandenen" Sicherheitsluecken ihres kompilierten Sicherheitsrisikos schuetzen. Muss da jetzt gleich eine Session-Verwaltung her, sollen wir nur sichere Browser zugreifen lassen oder gibt es evtl. doch einen Trick, den IE die Passworte vergessen zu lassen? Das sollte natuerlich auch ohne JS, ActiveX und aehnliche Scherze funktionieren, denn es ist ein akademisches Projekt mit hohem Sicherheitsanspruch, dass auf jedem Browser mit allen Einstellungen optimale Sicherheit bieten soll.
Oder muss man die Preferences des IE aendern, um dieses History-Passwort-Caching zu deaktivieren?
Gruesse,
Bio
Hi
also ich weiss da nur folgendes:
mach dass die seite jedesmal vom server geladen wird!
mach das nicht über einen meta-tag, sondern über ne server-side-anweisung
in ASP "<% Response.Expires = -1 %>" -> beim absenden vom server ist die page sozusagen schon verfallen.
-----
dann noch weitere sicherheit..
bei jeder html-site auf der ein formular ist, würd ich bei onLoad den wert aller inputs löschen....einfach eine for-schleife durch alle laufen lassen und leeren.
schöne, cu
PS: der IE ist gut...sehr gut sogar..wenn nicht gar der beste (und supermegagigagenial, wenn man activeX deaktiviert)
Moin,
in ASP "<% Response.Expires = -1 %>" -> beim absenden vom server ist die page sozusagen schon verfallen.
was wird vom ASP dann fuer den expires-Header eingesetzt? -1? Das produziert dann einen ungueltigen HTTP-Header.
*Erlaubt* ist nur ein "HTTP-Date", also eine konkrete Datumsangabe in einem bestimmten Format. Und dann ist fuer das Expires-Modell ein zusaetzlicher Date-Header notwendig, damit der Client etwas zum vergleichen hat:
C:>perl -MCGI=header -e "print header (-expires => 'now')" x=y
Expires: Mon, 16 Jul 2001 00:23:20 GMT
Date: Mon, 16 Jul 2001 00:23:20 GMT
Content-Type: text/html
(x=y, um die Parameterabfrage von CGI.pm zu unterdruecken)
(aeh, irgendwelche Uhren gehen hier falsch ;-)
*Geduldet* ist Expires: 0
welches den gleichen Effekt haben sollte
Quelle:
http://www.faqs.org/rfcs/rfc2616.html
PS: der IE ist gut...sehr gut sogar..wenn nicht gar der beste (und supermegagigagenial, wenn man activeX deaktiviert)
nun ja, HTML darstellen kann er halbwegs. Als HTTP-Client ist er eine glatte Niete.
Bio: Cachen *sicher* verhindern ist unmoeglich. Der Client macht eh, was er will (und wenn es ein bloeder Proxy ist...)
Tip: Sessions verfallen lassen.
Viele Gruesse,
n.d.p.