Warum geht das nicht? Javascript Passwort ohne Funktion

Rothlicht

Rothlicht

Aktives Mitglied
Thread Starter
Dabei seit
31.01.2004
Beiträge
5.607
Reaktionspunkte
426
Hallo.

Ich habe lange im Web gesucht nach einer Möglichkeit einer "billigen" Verblendmöglichkeit eine bestimmte Seite nur per Passwort zu verdecken.
Jetzt habe ich diese endlich gefunden. Unter: http://www.magix.info/de/magix-webdesigner.wissen.1001974.html#ca864057

Allerdings, egal was ich in das Passwortfeld eingebe, ich erhalte keine Fehlermeldung und auch keine Funktion :-(
Die Webseite liegt auf Strato und bisher sind php-skripte eigentlich immer gegangen. Ich finde die Lösung mit dem Seitennamen als Passwort ganz gut und
wollte diese nun nutzen.

Kann mal jemand drüber gucken und mir sagen, wo der Fehler liegen könnte?? Wäre super.


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Der Site Besucher muss auf einer Seite ein Passwort eingeben, um auf eine geschützte Seite weitergeleitet zu werden.

Das Passwort ist dabei identisch mit dem Seitennamen (ohne Endung).
Soll also z. B. auf die Site fotos.htm weitergeleitet werden, ist das Passwort "fotos"

Der "Schutz" ist also sehr primitiv, er kann aber zumindest nicht aus dem HTML Code der Seite ausgelesen werden, weil im Script aus dem eingegebenen Passwort eine Prüfsumme errechnet wird, die als einziges Kriterium für die Richtigkeit benutzt wird.
Wenn also für die zu schützende Seite ein kryptischer Name angelegt wird, erschwert das den unberechtigten Zugriff zusätzlich.

Die "geschützte" Seite ist dennoch nicht wirklich geschützt. Jeder, der den Inhalt des Webspace sichtbar macht (wenn er denn weiß, wie das geht), sieht auch den Namen der „geschützten“ Seite und kann darauf zugreifen.

So sieht der Scriptcode aus, der in den HTML Body eines Platzhalters eingegeben werden muss:

--------------------------------------------------------------
<script type='text/javascript'>

function passwort() {
var summe = 0;
var pass = document.pwort.pw.value;
var pruefsumme = 984;
for (var i = 0; i < pass.length; i++) {
var unicode = pass.charCodeAt(i);
summe += unicode;
};

if (summe == pruefsumme) {
location.href=document.pwort.pw.value + ".htm";}
else {
document.pwort.pw.value = "";
window.alert("Passwort falsch \n\nFehler "+ summe)
};
}

</script>

<form name="pwort" action="javascript:passwort();">
Passwort eingeben:
<input type="PASSWORD" name="pw" size="15">
<input type="button" value="OK" onclick="passwort()" name="button">
</form>
---------------------------------------------------------------

So sieht das online aus:




Die im o. a. Script benutzte Prüfsumme „984“, ist der Unicode Checksum Wert, der zum Seitennamen „gal_x_cz001“ gehört.
Die Seite „gal_x_cz001.htm“ ist die „geschützte“ Galerie, die ich in der Demo benutzt habe.

Sollen andere Seitennamen benutzt werden, genügt es, den anderen Namen bei der Passwortabfrage einzugeben. Als Ergebnis erhält man die Fehlermeldung „Passwort falsch, Fehler „xxxxx“ der Zahlenwert nach „Fehler“ ist die gesuchte Prüfsumme für den eingegebenen Seitennamen.
Die so ermittelte Prüfsumme gehört dann in den Scriptcode an die Stelle;

var pruefsumme = xxxxx;


Wichtig!
Die “geschützte” Seite muss natürlich aus der NavBar entfernt werden, damit nicht jeder durch einen einfachen Klick dahin navigieren kann…

Die online Demo findest Du hier. Das Passwort ist gal_x_cz001

Hier kannst Du die funktionsfähige Projektdatei herunterladen, für eigene Experimente.

Viel Erfolg

---------------------------

Edit 23.7. 22:05 h

Die oben im JS grün markierte Ergänzung (document.pwort.pw.value = "";) eingefügt, die dafür sorgt, dass nach einer Falscheingabe das Eingabefeld geleert wird.
 
also erstmal bitte nicht fremde Seiten einfach stumpf in deinen Post kopieren. Das gehört sich nicht.

Du schreibst "bisher sind php-skripte eigentlich immer gegangen" ... Und du weißt aber auch, dass das gezeigte Script eben nicht PHP sondern Javascript ist? Bei mir funktionierts einwandfrei. Kannst du denn andere Javascripte ausführen?
 
Hallo. Ja, den Link zu dem Forum habe ich oben eingefügt, damit man gleich die Quelle sieht.

Ja, PHP und Javascript bring ich immer durcheinander. Also Javascript funktioniert eigentlich, da ich auf der Webseite auch ein Kontaktformular laufen habe, welches Javascript benötigt, das ist ein Rapidweaver Plugin namens "Formloom".

Das Strato Paket unterstützt auch Javascript, PHP, und mehrere MySQL Datenbanken.

Ich habe das ganze Skript in eine Rapidweaver Seite gepackt und zwar in die sog. Seitenleiste.
 
Gib uns mal einen echten Link auf das was Du da vorhast oder was wird nix...
 
www.de
auf der rechten Seite, dort wo das Passwort Eingabefeld ist.

Ich verstehe auch nicht, warum bei Falscheingabe keine Fehlermeldung angezeigt wird und sich überhaupt nichts rührt.
 
Zuletzt bearbeitet:
Du hast den Javascript-Teil gar nicht oder an die falsche Stelle reinkopiert. Im Quelltext ist er nicht, die Fehlermeldung von Safari in der Entwickler-Konsole ist auch recht sprechend:
[Error] ReferenceError: Can't find variable: passwort
onclick (www.foto-gentele.de, line 74)
 
Ich habe es so wie im Beispiel untereinander reinkopiert. Also zuerst


<script type='text/javascript'>
function passwort() {
var summe = 0;
var pass = document.pwort.pw.value;
var pruefsumme = 980;
for (var i = 0; i < pass.length; i++) {
*** var unicode = pass.charCodeAt(i);
** summe += unicode;
};
if (summe == pruefsumme) {
** location.href=document.pwort.pw.value + ".htm";}
else { 
* document.pwort.pw.value = "";
* window.alert("Passwort falsch \n\nFehler "+ summe)
};
}
</script>

und dann darunter gleich das Formfeld:

<form name="pwort" action="javascript:passwort();">
Passwort eingeben:
<input type="PASSWORD" name="pw" size="15">
<input type="button" value="OK" onclick="passwort()" name="button">
</form>

Muss das Javascript woanders hin? In den Header?
 
OK ich revidiere meine Meinung: es sind Fetzen des Code vorhanden, aber es ist für den Browser nicht mehr als Javascipt erkennbar:

<script type='text/javascript'><br />function passwort() {var summe = 0;
var pass = document.pwort.pw.value;
var pruefsumme = 980;
for (var i = 0; i < pass.length; i++) {
&nbsp;&nbsp;&nbsp; var unicode = pass.charCodeAt(i);
&nbsp;&nbsp; summe += unicode;
};<br />if (summe == pruefsumme) {
&nbsp;&nbsp; location.href=document.pwort.pw.value + ".htm";}
else {
&nbsp; document.pwort.pw.value = "";
&nbsp; window.alert("Passwort falsch \n\nFehler "+ summe)
};
}<br /></script><br />


Dieser Mischmasch aus javascript und html kann nicht gehen.

Kannst Du den Code irgendwie "sauber" ohne Steuerzeichen und Leerzeichen eingeben? Irgendwie als Quellcode direkt und nicht als scheinbaren Beitrag eines cms?
 
Ich kann in den Header Javascript eingeben. Dafür gibt es extra ein Feld wo nur javascript drinsteht.
Nennt sich Benutzer Java-script, wird zwischen <script> Tags eingefügt. Ich kopiere jetzt nur mal das Javascript dorthin.
 
FUNKtiONIERT!!!
DANKE!!! DANKE!!!
 
Könnte klappen, der FORM-Teil sieht ok aus.
 
Habe nur den javascript teil ohne <script type='text/javascript'> und am Ende ohne </script> in das Feld "Java Script" reinkopiert und jetzt rührt sich was.
Danke, jetzt kann ich "weiterbasteln"

Super vielen lieben Dank.
Ohne deine Hilfe wäre ich da nicht drauf gekommen.
 
Zurück
Oben Unten