Claude, 13. Juli 2005, 09:51 Uhr
Warning: Use of undefined constant ri_rand_compare - assumed 'ri_rand_compare' (this will throw an Error in a future version of PHP) in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/random-image-widget/random_image.php on line 129 Warning: Use of undefined constant ri_rand_compare - assumed 'ri_rand_compare' (this will throw an Error in a future version of PHP) in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/random-image-widget/random_image.php on line 130 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 1384 Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 700 Warning: Invalid argument supplied for foreach() in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 707 Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 700 Warning: Invalid argument supplied for foreach() in /home/httpd/vhosts/scratchbook.ch/httpdocs/wp-content/plugins/lightbox-plus/classes/shd.class.php on line 707
Ich habe lange überlegt, ob ich nicht doch ein Login mit einem Cookie implementieren soll. Natürlich kann dies eine Sicherheitslücke darstellen – doch es gibt auch Vorteile.
Was ist überhaupt ein Cookie?
Ein Cookie (am. englisch Plätzchen, Keks) ist ein kurzer Eintrag in einer meist kleinen Datenbank auf einem Computer und dient dem Austausch von Informationen zwischen Computerprogrammen oder der zeitlich beschränkten Archivierung von Informationen.
Doch diese Beschreibung ist mir zu allgemein. Wenn wir von Cookies im Zusammenhang mit dem Internet reden, meinen wir eine kleine Textdatei mit einer Information drin, die der Browser irgendwo ablegt.
Mit einem Cookie ist es also möglich, Informationen für eine gewisse Zeit zwischenzulagern, auch dann, wenn der Browser geschlossen wird. Viele Foren, Gästebücher etc. machen oft davon Gebrauch, um z.B. Login-Informationen in einem Cookie abzulegen, so dass der Benutzer nicht immer sein Passwort eingeben muss. DER GROSSE NACHTEIL: Wird das Cookie gestohlen, kann sich der Angreifer als fremden Benutzer einloggen, ohne dessen Passwort zu kennen.
Es ist wohl klar, dass ich eine solch unsichere Methode sicher nicht implementieren werde. Stattdessen habe ich nach einer Lösung gesucht, die trotz des hohen Komforts auch noch einigermassen sicher ist. Folgendes ist dabei herausgekommen:
SSC – Session Secret Cookie
Ihr habt nun also folgende Möglichkeit, euch auf dem Weblog einzuloggen: Entweder per User/Pass Kombination, oder mit einem Cookie.
Jetzt muss noch definiert werden, welcher Benutzer wohl der „richtigere“ ist: Derjenige, der sein Passwort kennt oder der mit dem Cookie? Richtig, der mit dem Passwort. Logins mit einem Cookie sind also nicht vertrauenswürdig.
Das obige SSC-Verfahren (yeah, nobody has done it before, it’s my invention!) funkioniert im Prinzip so: Jedesmal, wenn sich der User (Bob) mit seinem Passwort anmeldet (vertrauenswürdig), wird ein Geheimnis auf dem Server festgelegt – unabhängig davon, ob er Cookies will oder nicht.
Akzeptiert er Cookies, wird dieses Geheimnis als Cookie beim Benutzer abgelegt. Von nun an kann er sich ohne Passwort einloggen, mit anderen Worten: Er ist theoretisch immer online. Cool, gleich zwei Fliegen auf einen Streich: Verabschiedet euch von den nervigen Session-Timeouts; läuft die Session ab, seid ihr schwuppsdiwupps per Cookie wieder online!
Der Server prüft bei jedem Klick folgendes:
Nur das Geheimnis überprüfen, wenn das Cookie gesetzt ist, wäre sinnlos. Der Angreifer kann das Cookie löschen, und bleibt online, auch wenn das Geheimnis geändert wird. Somit wird bei einem Cookie-Login das Geheimnis zusätzlich in die Session registriert.
Session: Ein Servergespeichertes Cookie (Session-Cookie), das der Benutzer nicht von Hand ändern kann. Er kann nur sagen: „Mir gehört die Session 0541a2427ae590184115cbe821b0f479“. Und wenn er das nicht sagen tut, wird er ausgeloggt!
Nun kann der Angreifer sich mit Bob’s Cookie einloggen. Er kann es von mir aus auch wieder löschen.
Egal was er mit dem gestohlenen Cookie macht: Loggt sich Bob mit seinem Passwort ein, wird das Geheimnis geändert, und der Angreifer wird beim nächsten Klick ausgeloggt und sein Cookie ungültig. Ihm bleibt nichts anderes übrig als ein 32-stelliger nutzloser Zahlensalat.
Es ist also von Vorteil, sich von Zeit zu Zeit mit Passwort einzuloggen, damit das Geheimnis geändert wird.
Cookies sind übrigens nicht die einzige Komfortsteigerung; Postet doch mal ein neues Blog und schaut wie komfortabel das jetzt geht!
Capt. Crakkstuh
gibs doch zue. de fhbb student wo bi euch in coop zu 40% als netzadmin schafft hett dr e tipp geh 😉