Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hidden Login Script Problem
#1
folgendes:

ich hab dieses kleine script das vor vielen jahren mal q-tube für mich geschrieben hat, allerdings funktioniert das endergebnis nicht so wie ich es gerne hätte - nämlich gar nicht.

Überblick


Dieses Script für ein verstecktes Login funktioniert mit JavaScript und PHP. Das JavaScript kann auf jeder Seite
eingebaut werden und zeichnet die Tastatureingabe auf. Diese Eingabe schickt es dann an eine PHP-Datei
auf dem Server, in der die Eingabe überprüft wird. Falls es das richtige Passwort sein sollte, wird man auf
eine vordefinierte Seite weitergeleitet.

Das Script


JavaScript


Als erstes brauchen wir das Framework "Prototype". In diesem Framework ist eine AJAX-Klasse vorhanden, mit welcher wir die Eingabe zum Server schicken und die Antwort des Servers auslesen können. Dieses Framework könnt ihr hier herunterladen: http://www.prototypejs.org/

Dann brauchen wir noch ein weiteres Script. Ihr könnt dieses direkt in die prototype.js einbauen, oder eine eigene Datei schreiben, je nachdem wie versteckt es sein soll. Ich habe mich dafür entschieden, eine eigene Datei namens "script.js" zu benutzen.

Meine script.js sieht wie folgt aus:
Code:
var tasten = '';

function keyPressed (Ereignis)
{
if (!Ereignis) Ereignis = window.event;

if (Ereignis.which)
{
Tastencode = Ereignis.which;
}
else if (Ereignis.keyCode)
{
Tastencode = Ereignis.keyCode;
}

tasten = tasten + String.fromCharCode(Tastencode);

new Ajax.Request('passwort.php',
{
method: 'post',
parameters: {bla: tasten},
onSuccess: function(transport)
{
var response = transport.responseText || "no";
if ((response != 'falsches passwort') && (response != 'no'))
{
location.href = response;
}
}
});
}


Nun die Erklärung:
Code:
var tasten = '';

Das ist ganz einfach dafür da, dass die Variable "tasten" schon definiert und als leerer String initialisiert ist; sonst gibt es eine Fehlermeldung bei der Zuweisung unten.

Der restliche Teil ist eine Funktion, die aufgerufen wird, wenn eine Taste gedrückt wird:

Code:
if (!Ereignis) Ereignis = window.event;

if (Ereignis.which)
{
Tastencode = Ereignis.which;
}
else if (Ereignis.keyCode)
{
Tastencode = Ereignis.keyCode;
}

tasten = tasten + String.fromCharCode(Tastencode);


Dieser Teil ist dafür, dass der Code der gedrückten Taste ermittelt, danach in einen Buchstaben verwandelt und schlussendlich an die schon vorher gedrückten Buchstaben angehängt wird.

Code:
new Ajax.Request('passwort.php',
{
method: 'post',
parameters: {bla: tasten},
onSuccess: function(transport)
{
var response = transport.responseText || "no";
if ((response != 'falsches passwort') && (response != 'no'))
{
location.href = response;
}
}
});


Hier kommt nun die Kommunikation mit dem Server.

"Ajax.Request" kommt aus dem Framework und vereinfacht uns das Ganze ungemein. Als erstes wählt man die Datei, an welche der Request gehen soll. Als zweites wird der Übermittlungsweg gewählt, hier "post" ("get" wäre die andere Möglichkeit). "parameters" legt fest, welche Werte übergeben werden und wie die heißen (hier: der Wert von "tasten" als Variable "bla").

Wenn das Ganze geklappt hat (also: "onSuccess"), wird die Antwort der PHP-Datei ausgewertet. Das passiert hier in der if-Abfrage. Also wenn die Antwort nicht "falsches passwort" lautet, wird man auf die Antwort weitergeleitet (klingt komisch, ist aber so). Wenn die Antwort "falsches passwort" ist, soll nichts passieren.
Wenn die Antwort leer ist, weil z.B. im Skript irgendetwas nicht geklappt hat, wird "response" auf 'no' gesetzt. In diesem Fall passiert ebenfalls nichts weiter.

PHP


Meine passwort.php sieht wie folgt aus:

Code:
<?php
if(strtolower($_POST['bla']) == 'pass')
echo "http://www.google.ch";
else
echo "falsches passwort";
?>


Hier wird die POST-Variable "bla" überprüft, hier könnt ihr auch euer Passwort ändern, indem ihr einfach 'pass' ersetzt (Anführungszeichen nicht vergessen). Wenn 'bla' das korrekte Passwort 'pass' enthält, wird die Url ausgegeben - und man wird im script.js auf die vordefinierte Seite (hier: google.ch) weitergeleitet.
Hier könnte man übrigens auch noch ein Session-Login einbauen. Falls das Passwort nicht korrekt ist, wird "falsches passwort" ausgegeben.

HTML


Dieses Script könnt ihr auf jeder gewünschten Seite einbauen. Dafür müsst ihr im head der Seite das einbauen:

Code:
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="script.js"></script>


Und im body der Seite:
Code:
<script type="text/javascript">
document.onkeydown = keyPressed;
</script>


Damit wird bei jedem Tastendruck die Funktion keyPressed, die wir vorher gebastelt haben, ausgeführt.



ich gehe davon aus, das es nicht mehr funktioniert da es alt ist. kann mir bitte jemand erklären wo der fehler liegt?

danke und liebe grüsse, kLim4x
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste