Viki: Pseudo-Passwortabfrage

Hi,
Ich nutze einen freien Webaccount, wird also schwierig mit Passwortabfragen, ausser eben mit JavaScript. Ich habe nun folgendes kleines Script, das eine Seite verbirgt, solange man den Namen dieser nicht weiß:

<script language="JavaScript">
<!--
function passwort(){
document.location.href=document.pwort.pw.value + ".html"
if(document.pwort.pw.value == "") {
alert("Please try again!");
return false;
   }  
}
//-->
</script>

Da der Server automatisch zu index.htm/l oder default.htm/l linkt, ist das ja eine nette Umgehungsmöglichkeit. Meine Frage ist aber nun, wie kann ich verhindern, dass man mit Tools, die ganze Websiten aufzeichnen (zB HTTP Tracker) die Seite doch kriegt? Wäre sehr dankbar für eure Hilfe,
Gruss, Viki

  1. wie kann ich verhindern, dass man mit Tools, die ganze Websiten aufzeichnen (zB HTTP Tracker) die Seite doch kriegt? Wäre sehr dankbar für eure Hilfe,
    Gruss, Viki

    Hi Viki,

    das einzige das mir dazu einfällt, ist daß du diese kleine JavaScript "Passwort Abfrage" auf einer anderen URL liegen hast, als die die Seiten, die du verbergen willst.
    Dann kriegt ein Sitegrabber gerade mal das JavaScript zu sehen.
    Wenn man aber in dessen Quellcode guckt, dann sieht man die andere URL, aber wenn du die Seite von soclhen Leuten verstecken willst, solltest du sowieso eine zuverlässigere Methode (.htaccess z.B.) verwenden.

    Gruß
    Cruz

    1. Hi,

      das einzige das mir dazu einfällt, ist daß du diese kleine JavaScript "Passwort Abfrage" auf einer anderen URL liegen hast, als die die Seiten, die du verbergen willst.

      Die gehen ja die "Site-Grabber" trotzdem dem Link nach, oder nicht?

      Dann kriegt ein Sitegrabber gerade mal das JavaScript zu sehen.
      Wenn man aber in dessen Quellcode guckt, dann sieht man die andere URL,

      Wo denn, steht doch nirgends wie die datei heisst, oder ist mir da etwas entgangen?

      Gruss,
      Viki

      1. Die gehen ja die "Site-Grabber" trotzdem dem Link nach, oder nicht?

        wenn der Link im JavaScript teil steht ist er in der Regel für Site Grabber maskiert, weil z.B.

        var url="http://...";

        nicht als Link erkannt wird, weil ja nicht

        <a href="http://...></a>

        Dann kriegt ein Sitegrabber gerade mal das JavaScript zu sehen.
        Wenn man aber in dessen Quellcode guckt, dann sieht man die andere URL,

        Wo denn, steht doch nirgends wie die datei heisst, oder ist mir da etwas entgangen?

        Naja...wenn du die verborgenen Seiten auf einer anderen URL liegen hast, wirst du nicht drum herumkommen diese URL auch in deinem JavaSccript einzutragen, da du die Users dorthin umleiten musst.

        Gruß
        Cruz

        1. wenn der Link im JavaScript teil steht ist er in der Regel für Site Grabber maskiert, weil z.B.
          var url="http://...";
          nicht als Link erkannt wird, weil ja nicht
          <a href="http://...></a>

          AAAhhhhaaaaaaa!!!!!!!
          THX für diesen Hinweis, dann isses ja eh nich so tragisch.
          (Da hätt ich aber auch selber draufkommen können, ich doofe Nuß)
          Aber auf dem Schlauch steht's sich ja so gut...
          Grüsse, Viki

        2. Naja...wenn du die verborgenen Seiten auf einer anderen URL liegen hast, wirst du nicht drum herumkommen diese URL auch in deinem JavaSccript einzutragen, da du die Users dorthin umleiten musst.

          Hallo,

          da das Script auf keine festdefinierte Seite, sondern auf einen
          aus Password und dem String ".html" generierten Link springt,
          kann auch der Seitenname nicht ausgelesen werden.
          Zum Beispiel wird nach Eingabe des Passworts "l4nomansland"
          auf die Seite "l4nomansland.html" geroutet. Sollte es diese
          Seite nicht geben, kommt eben ein 404.

          (Ich hab aber schon einige gesehen, die das machen, aber vergessen
          haben, das Durchsuchen des Directory bei fehlender Startseite zu
          unterbinden)

          Tschau, Stefan

  2. Falls Dir das mit dem Namen eingeben zu simpel ist, kannst Du auch mein Script benutzen. Da gibst Du einen Namen und ein Passwort ein, und der Dateiname wird ermittelt (verschlüsselt) - und die Datei angezeigt, falls vorhanden. Die Files haben dann so kryptische Namen wie zSCerd39kDHk923nPd0.html...
    http://www.stradax.net/javascript/pwdschutz

    Die Suchmaschinen werden deine Files nirgends indexieren, da deren Existenz ja nicht bekannt ist.

    Gruss, Beat

    1. Hi, Beat
      vielen Dank, das ist echt genial
      Gruss, Viki

    2. Falls Dir das mit dem Namen eingeben zu simpel ist, kannst Du auch mein Script benutzen. Da gibst Du einen Namen und ein Passwort ein, und der Dateiname wird ermittelt (verschlüsselt) - und die Datei angezeigt, falls vorhanden. Die Files haben dann so kryptische Namen wie zSCerd39kDHk923nPd0.html...
      http://www.stradax.net/javascript/pwdschutz

      Nur leider steht der Schlüssel gleich im Quelltext mit dabei, deswegen ist es mehr eine Art Intelligenztest, als ein Passwortschutz.

      1. Nur leider steht der Schlüssel gleich im Quelltext mit dabei, deswegen ist es mehr eine Art Intelligenztest, als ein Passwortschutz.

        Klar! Es ist halt einfach so gut, wie es mit JavaScript eben möglich ist. Bin selber ja auch nicht so dafür, aber gewisse Leute haben keine anderen Möglichkeiten...

        Gruss,
        Beat

        P.S.: Funktion könnte man auch in einer .js-Datei 'verstecken'... -> ein Intelligenztest mehr. ;-)

  3. Hallo
    unter http://javascript.internet.com habe ich was gefunden was Dir helfen könnte.
    Da ich die genaue URL nicht mehr weiß hänge ich die source unten an.
    Hierbei handelt es sich um ein script mit dem Du Deine "user" und die Seiten auf die Diese
    zugreifen verwalten kannst. Das script generiert wiederum ein neues script das in deine Seite
    eingebunden werden muß. In diesem script sind die Seitennamen und die Passwörter verschlüsselt.

    ------------------------ source von Passwort.htm -----------------------
    <HTML>
    <HEAD>
    </HEAD>

    <BODY>

    <center><table border=1>
    <tr><form name=members><td rowspan=4>
    <select name=memlist size=10 onChange="showmem(this.form)">

    <!-- Original:  Dion  -->
    <!-- Web Site:  http://members.xoom.com/yoboseyo -->

    <!-- This script and many more are available free online at -->
    <!-- The JavaScript Source!! http://javascript.internet.com -->

    <!-- "member name password destination pagename " -->
    <option selected value="John Smithpasswordmainpage">John Smith
    <option value="Peter Jonestheirpwdendpages">Peter Jones
    <option value="Sue Brownasdfvcxznowheres">Sue Brown
    <option value="Sally Westzaqxswdelogintop">Sally West
    </select></td>
    <td align=right>User:</td><td><input type=hidden value="0" name=entry>
    <input type=text name=memname size=8 value=""></td></tr>
    <tr><td align=right>Password:</td><td><input type=text name=password size=8 maxlength=8><font size="-1"><-- Must be exactly 8 characters</font></td></tr>
    <tr><td align=right>Page Name:</td><td><input type=text name=pagename size=8 maxlength=8><b>.html</b><font size="-1"><-- Must be exactly 8 characters</font></td></tr>
    <tr><td colspan=2 align=center>
    <input type=button value="New User" onclick="addnew(this.form);">
    <input type=button value="Delete User" onclick="delthis(this.form);">
    <input type=button value="Update/Show Coding" onclick="update(this.form); create(this.form);"></td></tr>
    <tr><td colspan=3 align=center>
    <input type=text size=60 name=message value="Note:  Password/Page Name must be exactly 8 letters! (a-z)">
    <input type=hidden name=num value=1></td>
    </form></tr>
    </table>
    <hr size=2 width=75%>
    <form name=js><textarea cols=75 rows=10 name=scrpt wrap=virtual>
    <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()+".html";
    }
    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>
    </textarea>
    </form>
    <SCRIPT LANGUAGE="JavaScript">
    <!-- Begin
    var params=new Array(4);
    var script=document.js.scrpt.value;
    document.js.scrpt.value="Create your users, their passwords, and their destination pages using the form above.\n\nThen, click 'Show Coding' to see the login HTML and JavaScript that you need to put on your page to password-protect your site with that info.\n\nQuestions about this script or how to put it on your site should be directed to it's author via email:  dion@mailhub.omen.com.au\n\n*Honestly, we don't even totally understand this JavaScript!*";
    var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI";
    showmem(document.members);
    function showmem(form) {
    document.members.num.value=document.members.memlist.length;
    var which=form.memlist.selectedIndex;
    splt(form.memlist[which].value);
    form.entry.value=which+1;
    for (i=2;i<5;i++) {
    form.elements[i].value=params[i-2]; };
    }
    function splt(choice) {
    p=0;
    for (i=0;i<3;i++) {
    a=choice.indexOf("",p);
    params[i]=choice.substring(a,p);
    p=a+1;
       }
    }
    function addnew(form) {
    newmem=getfields(form);
    var who=prompt("New User's Name:","");
    form.memlist[form.memlist.length] = new Option(who, newmem, false, true);
    if (navigator.appName=="Netscape") {
    document.js.scrpt.value=script;
    history.go(0);
    }
    else {
    showmem(document.members);
       }
    }
    function getfields(form) {
    newmem="";
    for (i=2;i<5;i++) {
    newmem+=form.elements[i].value+""; };
    for (i=3;i<5;i++) {
    a=form.elements[i];
    for (k=0;k<8;k++) {
       }
    }
    return(newmem);
    }
    function delthis(form) {
    if (confirm("Delete "+form.memname.value+"?")) {
    form.memlist.options[form.entry.value-1]=null;
    form.message.value=form.memname.value+" Deleted";
    form.memlist.selectedIndex=0;
    if (navigator.appName=="Netscape") {
    document.js.scrpt.value=script;
    history.go(0);
    }
    else {
    showmem(document.members);
          }
       }
    }
    function update(form) {
    msg="no";
    a=form.elements[i];
    for (k=0;k<8;k++) {
    b=a.value.substring(k,k+1);
    c=b.toUpperCase();
    form.memlist[form.entry.value-1].value=getfields(form);
    form.message.value=form.memname.value+"'s record was updated";
       }
    }
    function create(form) {

    var html="<center><form name=login>\n";
    html+="<table border=1 cellpadding=3>\n\n";
    html+="<!-- Original:  Dion  -->\n";
    html+="<!-- Web Site:  http://members.xoom.com/yoboseyo -->\n";
    html+="<!-- This script and many more are available free online at -->\n";
    html+="<!-- The JavaScript Source!! http://javascript.internet.com -->\n\n";
    html+='<tr><td colspan=2 align=center><font size="+2">';
    html+='<b>Members-Only Area!</b></font></td></tr>\n';
    html+="<tr><td>Username:</td><td><select name=memlist>\n<option value='x'>";
    for (j=0;j<form.memlist.length;j++) {
    splt(form.memlist.options[j].value);
    h1=makehash(params[1],3);
    h2=makehash(params[1],10)+" ";
    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);
    page+=alpha.substring(a,a+1);
    }
    html+="\n<option value='"+params[0]+""+h1+""+page+"'>"+params[0];
    };
    html+="\n</select></td></tr>\n";
    html+="<tr><td>Password:</td><td><input type=password size=10 maxlength=8 name=pass></td></tr>\n";
    html+='<tr><td colspan=2 align=center><input type=button value="Login" onclick="check(this.form)"></td>\n';
    html+="</tr>\n</table>\n</form>\n";
    document.js.scrpt.value=html+script+"</center>";
    }
    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>

    <p><center>
    <font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
    by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
    </center><p>

    <!-- Script Size:  6.50 KB  -->

    1. hi,
      äääähhh Danke auf jeden Fall, aber ich schätze, da muss ich wohl ein Vollprofi sein um da durchzublicken...aber ich schaus mir auf jeden Fall mal an. Das Script, das Beat mir empfohlen hat, kann ich aber auch für angehende "Programmierer" empfehlen, so wie ich es einer bin, auch wenn ich mich doch eher in die gestalterische Ecke einordne...

      Schöne Grüsse
      und nochmal Danke,
      Viki