Avatar billede teknik Juniormester
23. marts 2002 - 08:52 Der er 17 kommentarer og
2 løsninger

Login + Password til webside, samt beskyttelse mod kopiering

Hej alle eksperter, er længe siden jeg har været forbi her.
Jeg er blevet rodet ind i et on-line spil, og har lavet en hjemmeside for vores hold (min aller-første)
Siden http://home13.inet.tele.dk/Teknik er lavet i FrontPage, men serveren har ikke FP-extensions

1. Jeg ønsker at beskytte siden mod "fri" adgang, men da man vil få adgangskode udleveret, blot ved at melde sig på vort hold, så er der ikke behov for 100% sikkerhed.
5% eller deromkring er tilstrækkeligt.

2. Jeg ønsker også at beskytte siden mod "simpel" kopiering, da jeg har lagt en del tid ind i at skrive en masse tips til nye spillere, som jeg ikke ønsker "stjålet". Den beskyttelse må til gengæld gerne være af god kvalitet ;-)
-----------
Nu er jeg ingen ørn til kodning, faktisk er jeg ikke en gang en gråspurv. -Mine kvalifik. er på brugersiden.
Jeg har hentet nogle forskellige scripts, som kan løse opgaven, men jeg aner ikke hvad der skal hvorhen og hvorfor. -Jeg er 100% på herrens mark.

3. Jeg forestiller mig derfor, at opgaven kunne løses væsentligt letter ved at den som kan løse den får fri adgang til site, og så selv udfører løsningen.
I stedet for at skulle lære mig at gøre det.

Jeg ville (no-offence) foretrække en af dem på top-ti listen her, som jeg har fuld tillid til

Scripts o.lign brugt i løsning kunne evt. postes her, så ekspertens regler overholdes.

Jeg kigger ind omkring middag og ser om der er nogen frivillige.
Send evt. en E-mail på apedersen@mail.tele.dk
hvis du helst ikke vil have din mail adresse ud.

mvh :-)
Teknik

P.S. En "toppen af kransekagen" ville være, hvis der var  mulighed for 3 adgangs niveauer i passw systemet
fx. begyndere kan se side X,Y,Z, øvede kan se disse + side æ,ø og eksperterne kan se alle sider.
altså sikkerheds niveauer som:
a. Begrænsning 1 (spærring for 2 "tråde")
b. Begrænsning 2 (spærring for én tråd)
c. Fuld adgang

Dette er ikke noget "must", kun en "tanke".
Avatar billede emileej Nybegynder
23. marts 2002 - 09:04 #1
Hvis du vil have dette løst i JavaScript, vil der altid være mulighed for en bruger at komme ind på siden alligevel - ved at forhindre sin browser i at udføre JavaScript koden.
Det sikreste vil være noget server-side programmering - understøtter dit webhotel ikke php?

E-)mil
http://mfp.eej.dk
Avatar billede speedy Nybegynder
23. marts 2002 - 09:04 #2
Det med login-tingen vil jeg slet ikke råde dig til at gøre med JavaScript. Næsten alle der kan klikke Vis Kilde kan få fat i login og password på få sekunder (okay, måske 2 min. :)) Men det kan ikke betale sig at password-sikre en side med Javascript.

Da siden ligger på Teledanmarks server, gætter jeg på (Ved jeg næsten 100%) at der ikke er hverken ASP eller PHP. Det er klart at foretrække hvis man skal lave login med forskellige niveauer.

/SpEeDy
Avatar billede teknik Juniormester
23. marts 2002 - 09:14 #3
Jeg fandt en - efter sigende rimeligt sikker version her
http://www.hotscripts.com/cgi-bin/dload.cgi?ID=7290

Men om sikkerheden er lousy bekymrer mig som sagt ikke det fjerneste.
Det skal blot være en facade som stopper personer der dårligt aner, at højreklik eksisterer.
Ikke en barrikade mod hacking o. lign.

Der er jo ingen mening i "koste tid og penge på en dyr lås",
når "nøgler udleveres gratis" henne på hjørnet hvis i forstår.....
Avatar billede teknik Juniormester
23. marts 2002 - 09:16 #4
kopibeskyttelses scripts giver også kun en ringe sikkerhed.
Men sikkerhedsniveauet er altså _ikke_ det som bekymrer mig.
Mit problem er mere at få anvendt det fundne i praksis.
Avatar billede emileej Nybegynder
23. marts 2002 - 09:38 #5
I følgende eksempel kan du have lige så mange adgangsnievauer du vil - i mit eksempel er der tre...

passList.js:

passList=Array("kode1","side1","kode3","side3","kode3","side3");

Login siden:

<head>
<script src="passList.js"></script>
<scipt>
function checkPass(){
    pass=document.passForm.password.value;
    theUrl=document.location.href;
    for(i=0;i<passList.lenght;i+=2){
        if(pass==passList[i]){
            theUrl=passList[i+1];
            i=passList.lenght;
        }
    }
    document.location.href=theUrl;
    return false;
}
</scipt>
</head><body oncontextmenu="return false;">
<form action="about:blank" onsubmit="checkPass()" name="passForm">
<input type="text" name="password"></input>
<input type="submit" name="send"></input>
</form>
</body>

E-)mil
http://mfp.eej.dk
Avatar billede jakoba Nybegynder
23. marts 2002 - 09:39 #6
adgangsbeskuttelse er rimelig nem:

<form onsubmit="return false">
<input type='text' name='passfelt' value="">
<input type='button' 'value="Luk Op" onclick="lukop(this.form.passfelt.value)">
<script type="text/javascript">
function lukop( passwrd ) {
    if ( passwrd.length < 6 ) {
        alert( "du skal indtaste korrekt password først" );
    } else {
        self.location.href= passwrd+".html";
    }
}; //end lukop( string )
</script>
</form>

smid felt og script ind hvor du vil have dit login og lav en fil der hedder
  hvadpasswordnuer.html
det er den 'hemlige' side man kun kan komme til hvis man ved hvad password er.

kopibeskyttelsen tror jeg ikke rigtig der er noget at gøre ved. Hvis folk skal kunne se de tips på deres skærm kan de også side <alt><print screen> og gemme dem.

mvh JakobA
Avatar billede teknik Juniormester
23. marts 2002 - 15:25 #7
Ok, det ser ud til at i hellere vil bruge "den hårde måde".
Regn med, at det bliver lidt ligesom at lære en hest at flyve.
Svært men ikke umuligt, bare man får den højt nok op.

>>emileej
Jeg har ingen anelse om hvor script skal "puttes ind" i systemet ?
Hvis det overhovedet skal "puttes ind"
Jeg prøvede at paste det helt oven over html koden på min startside (index.htm)
Det resulterer blot i, at script så vises som tekst på siden.

Hvis jeg genererer en "ny side"
Så står der sådan her i html.
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 2</title>
</head>

<body>

</body>

</html>

*************
Der har jeg prøvet at sætte Script ind som body, altså
.....
<body>
....script komplet ....
</body>
......
men det resulterer kun i en side med noget tekst på.

mht. adgangsniveau / Array, så er ønsket at "kode 2" giver adgang til både side 1 og side 2, etc. er det også muligt med den metode ?

>>Jakoba
Disse øvelser har jeg ikke lavet med dit script, da jeg forudser nøjagtigt samme resultat.

****************
Som i nok kan høre, så er vi tilbage ved Adam og Eva mht. at forklare hvordan jeg skal gøre. det var derfor jeg foreslog en "gør det for mig"
løsning.

Jeg ville gerne have sat flere points af, fordi jeg er svær at hjælpe,  men det er jo åbenbart ikke tilladt længere.
Avatar billede emileej Nybegynder
23. marts 2002 - 15:37 #8
Oki - så tager vi det da bare fra bunden :)

1) Opret fem filer:
      passList.js        // Denne fil vil indeholde kodeordene
      passTester.html    // Det er denne side, du indtaster koden på
      nievau1.html      // Denne side viser din side med adgangs nievau 1
      nievau2.html      // Denne side viser din side med adgangs nievau 2
      nievau3.html      // Denne side viser din side med adgangs nievau 3

2) Indsæt følgende i passList.js :
      passList=Array("kode1", "nievau1.html", "kode2", "nievau2.html", kode3","nievau3.html");

3) Indsæt følgende i passTester.html :

<html>
<head>
<script src="passList.js"></script>
<scipt>
function checkPass(){
    pass=document.passForm.password.value;
    theUrl=document.location.href;
    for(i=0;i<passList.lenght;i+=2){
        if(pass==passList[i]){
            theUrl=passList[i+1];
            i=passList.lenght;
        }
    }
    document.location.href=theUrl;
    return false;
}
</scipt>
</head><body oncontextmenu="return false;">
<form action="about:blank" onsubmit="checkPass()" name="passForm">
<input type="text" name="password"></input>
<input type="submit" name="send"></input>
</form>
</body>
</html>

4) Indsæt følgende i de tre andre sider:
nievau1.html:
<html><body>Du har adgang på nievau 1</body></html>
nievau2.html:
<html><body>Du har adgang på nievau 2</body></html>
nievau3.html:
<html><body>Du har adgang på nievau 3</body></html>

5) Se passTester.html i din browser:
    De tre kodeord er "kode1","kode2" og "kode3"

E-)mil
http://mfp.eej.dk
Avatar billede teknik Juniormester
23. marts 2002 - 15:44 #9
Ok, tak - det prøver jeg!
Når det nok ikke før en gang i aften.
Avatar billede teknik Juniormester
23. marts 2002 - 22:41 #10
Nu har jeg prøvet det beskrevne, og fornemmer at være på rette spor.

Dog virker eksemplet endnu ikke efter hensigten.

Jeg har copy/pastet script fra eksperten, og konstateret, at der af og til kan ryge et ekstra mellemrum ind.

Men jeg har kigget meget nøje efter i de relevante linier, og ser ingen forskel i nærheden af "problemet"

Ved eksekveringen viser problemet sig som:
Jeg får godt nok rammen til password frem, når jeg åbner passTester.html

men over den står en bid af koden, som almindelig tekst.

der står

function checkPass(){ pass=document.passForm.password.value; theUrl=document.location.href; for(i=0:i

på én linie.

Det er linie 5,6,7 og en bid af linie 8 i html koden til passTester.html

Jeg kan indtaste et password i rubrikken, og også trykke submit, men når jeg gør det, så får jeg ikke "svarsiderne" nievau1-3 uanset hvilken af koderne der bruge, men blot en "absolut blank" side.

Mit gæt er at der mangler et lille tegn eller lign. ved en af enderne af den tekst som dukker op uønsket, men det er kun et gæt ;-)
Avatar billede emileej Nybegynder
24. marts 2002 - 10:09 #11
Doh! Nåhr ja - det hvor der står:
<scipt>
og
</scipt>
Skal der jo selvfølgeligt stå:
<script>
og
</script>
Var vist lidt hurtig i vendingen igår :o)

E-)mil
http://mfp.eej.dk
Avatar billede teknik Juniormester
24. marts 2002 - 19:47 #12
Doh!...og her sad jeg og troede at jeg havde set godt efter...sorry, den burde jeg selv have opdaget.
Avatar billede teknik Juniormester
25. marts 2002 - 18:17 #13
Nu ser min html således ud.
<html>
<head>
<script src="passList.js"></script>
<script>
function checkPass(){
    pass=document.passForm.password.value;
    theUrl=document.location.href;
    for(i=0;i<passList.lenght;i+=2){
        if(pass==passList[i]){
            theUrl=passList[i+1];
            i=passList.lenght;
        }
    }
    document.location.href=theUrl;
    return false;
}
</script>
</head><body oncontextmenu="return false;">
<form action="about:blank" onsubmit="checkPass()" name="passForm">
<input type="text" name="password"></input>
<input type="submit" name="send"></input>
</form>

4) Indsæt følgende i de tre andre sider:
nievau1.html:
<p>Du har adgang på nievau 1
<p>
nievau2.html:
<p>Du har adgang på nievau 2
<p>
nievau3.html:
<p>Du har adgang på nievau 3
</body>
</html>
******************'
Javascript filen ser således ud:
passList=Array("kode1","nievau1.html","kode2","nievau2.html","kode3","nievau3.html");
***********
Det har pyntet noget på facaden.
Dog vises der nu  _under_ dialogruden dette:
************
4) Indsæt følgende i de tre andre sider: nievau1.html:
Du har adgang på nievau 1

nievau2.html:

Du har adgang på nievau 2

nievau3.html:

Du har adgang på nievau 3
********
Og når jeg indtaster kode. - korrekt eller ej, så kommer jeg stadig kun til en "absolut blank" side.
ikke som jeg formóder var intentionen til en af de tre niveau sider.


Jeg har fundet én manglende " foran kode 3 i JS filen og rettet den, men så kniber det igen...

De eneste anden "uregelmæssighed jeg har kunnet spore er, at når jeg copy-paster teksten til passlist.js, så genereres der nogle mellemrum tæt på kommaerne.
Disse har jeg slettet, da de ikke var der alle steder...
men det var måske forkert.
Desuden har jeg mistanke til starten på <body> da jeg ikke tidligere har set andre argumenter putte med ind mellem <> tegnene.

..nu haster det lidt ...skulle helst funke kl. 20 i aften ;-))
Avatar billede teknik Juniormester
25. marts 2002 - 19:00 #14
..ups...pkt 4, som var kommet med Html er nu klippet væk...bob-bob
Avatar billede teknik Juniormester
25. marts 2002 - 19:07 #15
Denne linie vækker også mistanke:  if(pass==passList[i]){
Avatar billede teknik Juniormester
25. marts 2002 - 19:39 #16
Nu får jeg en "Pæn" side.
"Send" teksten vises dog ikke på den færdige "submit query" knap.
Og man kommer ikke frem til de ønskede sider.

Html er:

<html>
<head>
<script src="passList.js"></script>
<script>
function checkPass(){
    pass=document.passForm.password.value;
    theUrl=document.location.href;
    for(i=0;i<passList.lenght;i+=2){
        if(pass==passList[i]){
            theUrl=passList[i+1];
            i=passList.lenght;
        }
    }
    document.location.href=theUrl;
    return false;
}
</script>
</head><body oncontextmenu="return false;">
<form action="about:blank" onsubmit="checkPass()" name="passForm">
<input type="text" name="password"></input>
<input type="submit" name="send"></input>
</form>
</body>
</html>
Avatar billede emileej Nybegynder
26. marts 2002 - 07:54 #17
Dammn jeg har vist sovet da jeg skrev den kode...

<html>
<head>
<script src="passList.js"></script>
<script>
function checkPass(){
    pass=document.passForm.password.value;
    theUrl=document.location.href;
    for(i=0;i<passList.lenght;i+=2){
        if(pass==passList[i]){
            theUrl=passList[i+1];
            i=passList.lenght;
        }
    }
    document.location.href=theUrl;
    return false;
}
</script>
</head><body oncontextmenu="return false;">
<form action="about:blank" onsubmit="checkPass()" name="passForm">
Password:<br><input type="text" name="password"></input>
<input type="submit" name="send" value="Login"></input>
</form>
</body>
</html>

Prøv så at flytte linien fra passList.js over i din html fil - på lininen lige før "function checkPass(){"...

E-)mil
http://mfp.eej.dk
Avatar billede teknik Juniormester
28. august 2002 - 23:27 #18
Fik det til at virke til sidst ...og glemte så helt at give points.
men mange tak for indsatsen

VH
Teknik
Avatar billede emileej Nybegynder
29. august 2002 - 00:22 #19
Great
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester