[ASP] geschützter Bereich per JavaScript

Manuel Schnitger activeserverpages@glengamoi.com
Mon, 31 Oct 2005 10:09:09 +0100 (MET)


Hallo Zusammen,

ich habe eine Seite, die ich per folgendem JavaScript schütze. Nun ist bei
JS natürlich immer die Gefahr, dass jemand die Seite bookmarkt oder sie bei
Google findet und direkt darauf zugreifen kann. Dies wollte ich jetzt gern
dadurch umgehen, dass ich ein JS auf die Zielseite setze und Abfrage, ob der
User von einer bestimmten Seite kommt. Also: Wenn vorige Seite des Users
ungleich meiner Domain, dann schick ihn auf die Einlogseite andernfalls lass
ihn auf die gewünschte Zielseite. Ich weiß, dass JS kein Schutz, sondern
eher eine Erschwerung des Zugangs darstellt, aber ich habe leider keine
serverseitige Möglichkeit. Deshalb die Frage(n):

a) Wie kann ich per JS abprüfen woher der User kommt und ihn dann
entsprechend um- oder weiterleiten?

b) gibt es andere clientseitige Möglichkeiten?

Gruß,
Manuel

<form name=login>
<table border=0 cellpadding=2>

			<!-- Original:  Dion  -->
			<!-- Web Site:  http://www.iinet.net.au/~biab/ -->
			<!-- This script and many more are available free online at -->
			<!-- The JavaScript Source!! http://javascript.internet.com -->

<tr><td>Lehrveranstaltung:</td><td><select name=memlist>

<!--PW-Abfrage fuer Aktualisierung-->
<option value='x'>
<option value='Einfuehrung FDPhysik|21258|KNUFFMPH'>Einfuehrung FDPhysik
<option value='Lernen von Physik|56509|NGARKSRL'>Lernen von Physik
<option value='Lehren von Physik|47502|MIKYENYH'>Lehren von Physik
<option value='Fachpraktikum Physik|15836|LBFQWXJZ'>Fachpraktikum Physik
<option value='TIMSS und PISA|47043|JZTDGRFU'>TIMSS und PISA
<option value='F&uuml;U NatWi|38457|OEWYSARS'>F&uuml;U NatWi
</select></td></tr>

<tr><td>Password:</td><td><input type=password size=10 maxlength=8
name=pass></td></tr>
<tr><td colspan=2 align=left><input type=button value="Login"
onclick="check(this.form)"></td>
</tr>
</table>
</form>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var params=new Array(4);
var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI";
function check(form) {
which=form.memlist.selectedIndex;
choice = form.memlist.options[which].value+"|";
if (choice=="x|") {
alert("Please Select Your Name From The List");
return;
}
p=0;
for (i=0;i<3;i++) {
a=choice.indexOf("|",p);
params[i]=choice.substring(a,p);
p=a+1;
}
h1=makehash(form.pass.value,3);
h2=makehash(form.pass.value,10)+" ";
if (h1!=params[1]) {
alert("Incorrect Password!"); return; };
var page="";
for (var i=0;i<8;i++) {
letter=params[2].substring(i,i+1)
ul=letter.toUpperCase();
a=alpha.indexOf(ul,0);
a-=(h2.substring(i,i+1)*1);
if (a<0) a+=26;
page+=alpha.substring(a,a+1); };
top.location=page.toLowerCase()+".htm";
}
function makehash(pw,mult) {
pass=pw.toUpperCase();
hash=0;
for (i=0;i<8;i++) {
letter=pass.substring(i,i+1);
c=alpha.indexOf(letter,0)+1;
hash=hash*mult+c;
}
return(hash);
}
// End -->
</script>
</center>

<!--ENDE SCRIPT-->

-- 
Highspeed-Freiheit. Bei GMX supergünstig, z.B. GMX DSL_Cityflat,
DSL-Flatrate für nur 4,99 Euro/Monat*  http://www.gmx.net/de/go/dsl