Zur Startseite

Passwortschutz in HTML Seiten mittels Java Script


Einleitung Grundidee Realisierung mit Java Script Beispiel Zusammenfassung Quelltext

1. Einleitung

Wer Daten im Internet veröffenlicht, möchte oft nicht Alles für Jedermann zugänglich lassen. Um diesem Wunsch nach Zugriffschutz gerecht zu werden, existieren zahlreiche Verfahren. Je nach Sicherheitsbedürfnis mit unterschiedlichem Aufwand - typischerweise mit Benutzerverwaltung auf der Serverseite und eventuell noch mit codierter Übertragung der Daten.

Wer jedoch auf seiner privaten Homepage keine Bankgeheimnisse, sondern nur ein paar Fotos vom Urlaub für seine Freunde bereitstellen möchte, der ist sicher auch mit weniger Sicherheit zufrieden. Es soll eher verhindert werden, daß ein zufällig vorbeisurfender Kollege die unseriösen Bilder vom Badeurlaub sieht, als echte Internet Cracks am Zugriff auf die Daten zu hindern. Wer das gänzlich ausschließen will sollte seine Daten einfach auf dem unvernetzten PC zuhause lassen.

Das hier vorgestellte Verfahren hat den Vorteil, daß es nur mit HTML-Seiten ohne Serverseitige Benutzerverwaltung oder CGI's auskommt. Damit ist es speziell für private Homepages - deren Provider sowas meist gar nicht ermöglichen - geeignet.

2. Grundidee

Das Konzept ist denkbar einfach. Normalerweise erlauben Webserver kein Listing der Verzeichnisse, d.h. entweder man ruft eine existierende Seite auf, oder man erhält eine Fehlermeldung vom Webserver ("Page not Found"). Im Prinzip kann also der Name der Datei als Passwort verwendet werden (z. B. "http:// www.homepage.de/ unterverzeichnis/geheim.htm").

3. Realisierung mit Java Script

Wenn man seine Freunden am Telefon eine solche Adresse als Passwort durchgibt, werden viele es vielleicht nicht schaffen diese Seite auch korrekt aufzurufen. Wesentlich eleganter ist es da, auf der (öffentlichen) Homepage ein Formular vorzusehen, an dem ein einfaches Passwort eingegeben werden kann. Per JavaScript wird die Eingabe dann überprüft. Bei korrekter Eingabe wird die geheime Seite dargestellt, andernfalls ein Hinweis auf das falsch eingegebene Passwort. Quelltext des Formulars

Das ganze besteht aus 3 Seiten:

Damit wird klar wie ein neues Passwort eingerichtet wird: Man muß die geheime Datei umbenennen nach pw_passwort.htm. Außerdem muß man die GIF-Datei nach pw_passwort.gif kopieren.

4. Beispiel

Hier ist ein einfaches Beispiel. Das Passwort lautet "geheim".

5. Zusammenfassung

Das Verfahren funktioniert mit jedem Internet Provider. Wer nicht allzuoft die Passworte ändern will hat damit eine einfache Möglichkeit Bereiche seiner Homepage zu schüzten.

Klar ist natürlich, daß das Verfahren nicht für sensitive Daten geeignet ist. Die Übertragung erfolgt im Klartext in der URL, jeder Proxy-Administrator und natürlich der Provider der Webseiten kommen jederzeit an den Inhalt.

6. Quelltext

<html>
<head>
<title>Password Request</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center"><font color="#0000FF">Passwort notwendig!</font></h1>

<form action="JavaScript:submit()" method="GET" name="passwordrequest">
    <div align="center"><center><table border="0" cellpadding="0" cellspacing="15">
        <tr>
            <td align="center" valign="top"><h3>Bitte geben Sie
            hier das Codewort ein:</h3>
            </td>
        </tr>
        <tr>
            <td align="center" valign="top"><input type="text"
            size="20" name="pwfield"></td>
        </tr>
        <tr>
            <td align="center" valign="top"><input type="submit"
            name="B1" value=" submit "> <input type="reset"
            name="B2" value="  reset "> </td>
        </tr>
    </table>
    </center></div>
</form>
<script language="JavaScript">
<!--

function submit ()
  {
  UserEingabe =  document.passwordrequest.pwfield.value;
  document.images[0].src = "pw_" + UserEingabe + ".gif";
  setTimeout('pwcheck(UserEingabe)', 2000);
  document.passwordrequest.pwfield.value = "Prüfe Codewort...";
  }

function pwcheck (Eingabe)
  {
  if(document.images[0].complete == true)
    {
    document.passwordrequest.pwfield.value = "Code word OK!";
    window.location.href= "pw_" + Eingabe + ".htm";
    }
  else
    {
    document.passwordrequest.pwfield.value = Eingabe;
    alert("Ungültiges Codewort!"); 
    }
  }

document.open();
document.write('<IMAGE name="test" SRC="dummy.gif" height="1" width="1">');
document.close();

// -->
</script>
</body>
</html>

Das ist also mein Versuch, im Internet präsent zu sein. Hoffentlich findest Du auf meiner Homepage was Du suchst. Wie auch immer, von meiner Seite aus keinerlei Haftung für den Inhalt, insbesondere nicht für Seiten anderer Autoren auf die verwiesen wird. This is my way of being present in the internet. I hope you can find what you are looking for. However, no liability for the contents of the pages, especially not for the linked pages of other authors. TFB, April 2001