Seite wechseln bei falschen Variablen
SimonSSS
- javascript
Hallo Leute,
Ich habe versucht eine Javascript Passwort geschützte Seite zu machen, da PHP oder .htaccess von meinem Server nicht unterstützt werden. Ich habe vor den Quellcode so zu verschlüsseln, dass man erst lange suchen muss, bis man das Passwort findet. Damit niemand mit der URL die geschützte Seite aufrufen kann werden bei korrekter anmeldung zwei zufällige Zahlen per URL übergeben (variable a und variable b) das übergeben und herausfiltern aus der URL klappt schon. In meinem Test soll einfach nur abgefragt werden, ob die Zahlen gleich sind. Wenn si nicht gleich sind, soll die Seite gewechstelt werden. Mein Code:
<font color="#ff0000">if(a != b){
document.location.href = "http://www.simodan.de/errors/error401.html"
}</font>
Allerdings springt die Seite auf die Error-Seite um, obwohl die Variablen gleich sind (habe ich mit alert überprüft). Weiß jemand warum das so ist ?
Ich habe versucht eine Javascript Passwort geschützte Seite zu machen, da PHP oder .htaccess von meinem Server nicht unterstützt werden.
Dann aber doch sicher _irgend eine_ andere Sprache.
Ich habe vor den Quellcode so zu verschlüsseln, dass man erst lange suchen muss, bis man das Passwort findet.
http://de.wikipedia.org/wiki/Security_through_obscurity - wie auch immer du das anstellst, den Verschlüsselungsalgorithmus musst du irgendwo ablegen - auch im JavaScript. Egal wie stark dieser ist, das kann meinetwegen RSA-1024 sein, wird man binnen Minuten das Klartextpasswort haben.
Damit niemand mit der URL die geschützte Seite aufrufen kann werden bei korrekter anmeldung zwei zufällige Zahlen per URL übergeben (variable a und variable b) das übergeben und herausfiltern aus der URL klappt schon.
Wenn dieses Faktum bekannt ist, braucht man sich ohnehin nicht mehr einloggen - sobald das System bekannt ist, kann man sich selbst einloggen ohne Probleme.
Allerdings springt die Seite auf die Error-Seite um, obwohl die Variablen gleich sind (habe ich mit alert überprüft). Weiß jemand warum das so ist ?
Mit alert() siehst du den Datentyp nicht.
Mahlzeit SimonSSS,
Ich habe versucht eine Javascript Passwort geschützte Seite zu machen,
Na gut, dann schalte ich halt mein Javascript für Deine Seiten aus ... und sehe alles, ohne irgendeine Prüfung. Ist es das, was Du erreichen willst?
Mein Code:
<font color="#ff0000">if(a != b){
document.location.href = "http://www.simodan.de/errors/error401.html"
}</font>
Javascript-Code zwischen HTML-<font>-Elementen? Und Du meinst, sowas könnte funktionieren?
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Hallo Ekki,
Wenn du dann deinen Javascript auf meiner Seite ausschaltest siehst du aber auch nicht mehr viel, da ich die Seite komplett mit Javascript mache, also bringt es dir nicht viel.
Ausserdem ist das mit den font elementen ein Schreibfehler. Die gehören da nicht hin.
MFG SimonSSS
Wenn du dann deinen Javascript auf meiner Seite ausschaltest siehst du aber auch nicht mehr viel, da ich die Seite komplett mit Javascript mache, also bringt es dir nicht viel.
Mit anderen Worten: dass du von Suchmaschinen nicht gefunden wirst, ist dir auch egal?
Ich mache eine FAmilienwebsite, also muss sie nicht von Suchmaschinen gefunden werden.
Hallo suit,
Mit anderen Worten: dass du von Suchmaschinen nicht gefunden wirst, ist dir auch egal?
passwortgeschützte Seiten werden äußerst selten von Suchmaschinen gefunden. In diesem Fall sehen nur die Besucher ohne Javascript nichts. Ob das akzeptabel ist, muss der Anbieter entscheiden.
Gruß, Jürgen
Hallo suit,
Mit anderen Worten: dass du von Suchmaschinen nicht gefunden wirst, ist dir auch egal?
passwortgeschützte Seiten werden äußerst selten von Suchmaschinen gefunden. In diesem Fall sehen nur die Besucher ohne Javascript nichts. Ob das akzeptabel ist, muss der Anbieter entscheiden.
Es könnte ja sein, dass es noch einen "nicht geschützen" Bereich gibt.
Hallo SimonSSS,
drei Anmerkungen:
Passwortschutz kann man auch sehr gut und einfach mit .htaccess / .htsslaccess realisieren, wenn der Server bzw. der Anbieter es unterstützt.
Mein Code:
<font color="#ff0000">if(a != b){
document.location.href = "http://www.simodan.de/errors/error401.html"
}</font>
Seit wann darf denn Javascript-Code im color-Tags eingeschlossen werden?
Warum soll die Weiterleitung farbig sein?
Du kennst das script-Tag?
Zum Vergleich: prüfe den Datentyp (alert des typeof) und wenn a und b Strings sind, ob da am Anfang oder am Ende ein Leerzeichen versteckt ist.
Gruß, Jürgen
Hallo,
Seit wann darf denn Javascript-Code im color-Tags eingeschlossen werden?
ich meine natürlich font-Tags.
Gruß, Jürgen
Hallo Leute,
Noch mal an alle: Die Farb-tags sollten dort nicht hin. Ich habe nur versucht den Code hervorzuheben. Trotzdem danke für die Antworten.
Hallo Leute,
OK Da sich manche beschwert haben poste ich halt hier meine neue Nachricht: Ich will zwei Variablen vergleichen. Sollten sie nicht gleich sein, so soll die Seite gewechstelt werden. Ich versuche es mit folgendem Script:
<script type="text/javascript">
function Geheim () {
var uebernahme=new String(document.location.href);
var uebergabe=uebernahme.indexOf("?");
var a=new String(uebernahme.substring(uebergabe+1,uebergabe+2));
var b=new String(uebernahme.substring(uebergabe+2,uebergabe+3));
if (a != b)
{
document.location.href = "http://www.simodan.de/errors/error401.html"
}
}
</script>
Die Funktion Geheim wird so aufgerufen:
<body onload="Geheim()">
Weiß jemand warum das nicht funktioniert ?
Der Type von der Variablen a und b ist object. Könnte es daran liegen ?
MFG SimonSSS
Mahlzeit SimonSSS,
Weiß jemand warum das nicht funktioniert ?
Der Type von der Variablen a und b ist object. Könnte es daran liegen ?
Ja.
Wenn Du Zahlen vergleichen willst, dann <http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=sorge dafür, dass die entsprechenden Variablen Zahlen enthalten>.
MfG,
EKKi
OK Da sich manche beschwert haben.
Niemand hat sich beschwert, nicht falsch verstehen - du wurdest freundlich und nüchtern darauf hingewiesen, wie man es "hier" handhabt.
Der Type von der Variablen a und b ist object. Könnte es daran liegen ?
Nein aber der Inhalt ist unterschiedlich - +1 und +2 bzw. +2 und +3 ist nicht dasselbe :p
<script type="text/javascript">
function Geheim () {
var uebernahme=new String(document.location.href);
var uebergabe=uebernahme.indexOf("?");
var a=new String(uebernahme.substring(uebergabe+1,uebergabe+2));
var b=new String(uebernahme.substring(uebergabe+2,uebergabe+3));
Verzichte auf das new String(). Es ist unnötig und sorgt hier für den Fehler. Alle Werte in diesen Operationen sind bereits Strings (bis auf uebergabe, das ist eine Number). Du musst sie nicht in Strings umwandeln. Und new String() wäre die schlechteste Methode, weil es keine String-Primitives, sondern String-Objects erzeugt. Objects sind immer voneinander verschieden (weil sie nicht identisch sind). Daher liefert dein Script falsche Resultate.
Das müsste völlig ausreichen:
~~~javascript
var übernahme = document.location.href;
var übergabe = übernahme.indexOf("?");
var a = übernahme.substring(übergabe + 1, übergabe + 2);
var b = übernahme.substring(übergabe + 2, übergabe + 3);
if (a != b) {
document.location.href = "http://www.simodan.de/errors/error401.html"
}
Mathias
[code lang=javascript]var übernahme = document.location.href;
var übergabe = übernahme.indexOf("?");
dies ließe sich mit http://de.selfhtml.org/javascript/objekte/location.htm#search@title=location.search optimieren
Vielen Dank jetzt funktionierts.