Liebe Community,
ich war lange nicht mehr aktiv programmiertechnisch. Heute wollte ich kurz ein uraltes skript von mir aufm Server reinhauen das ein Bekannter mal für mich geschrieben hat, leider klappt das nicht mehr. Ich wollte fragen ob jemand eine neuwertigere Lösung hat oder ob man etwas ähnliches sogar mit Python implementieren könnte (altes Skript ist js)
Und zwar geht es um folgendes, es ist ein Hidden Login Skript. Heisst, man kommt auf eine LEERE website und muss dort ein passwort eingeben, welches im Hintergrund geloggt wird und sofern das Passwort stimmt wird man automatisch weitergeleitet. Das ganze funktioniert OHNE Eingabefeld.
Hier das alte Skript:
Verstecktes Login Script (JavaScript Tutorial)
Tutorial erstellt von q-tube, letzte Änderung am 28.03.2008
Ü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.
Das war es auch schon. Viel Spaß mit dem Script wünscht q-tube.