Rolf: Passwortsicherung

hi,

ich möchte einen teil meiner homepage durch ein passwort sichern. wie erreiche ich, daß nach eingabe des passwortes, die seite in einem anderen framefenster geöffnet wird. bis jetzt wird die "geheime" seite immer in meiner "linkleiste" geöffnet.

weitermachen!

Rolf

hier die seite:

<html>
<head>

<script language="JavaScript">
<!-- Verstecken für ältere Browser --
function goForit() {
  var location;
  var password;
  password=this.document.testform.inputbox.value
  location=password + ".htm"
  fetch(location)
  theKeeper=window.close()
}
function fetch(location) {
  var root;
  if (opener.closed) {root=window.open('','passme','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no');
    root.location.href = location;
  } else {
    opener.location.href = location;
  }
}
// End hiding --->
</SCRIPT>

</head>

<body text="#DF7000" bgcolor="#FFF3CC" link="#0000FF" alink="#FF7F00" vlink="#007F00">

<font size="+1" face="Arial,Times New Roman">Bitte Passwort eingeben!</font>

<FORM NAME="testform">
<INPUT TYPE="text" NAME="inputbox" VALUE="" size=25>
<INPUT TYPE="button" NAME="button" Value="Absenden" onClick="goForit(this.form)"></FORM>
<font size="-1" face="Arial,Times New Roman">Bitte mit ‚Absenden‚ bestätigen; ‚Enter‚ reicht nicht!</font>
</body>
</html>

  1. fetch(location)

    Hier wird die Funktion fetch() aufgerufen.

    function fetch(location) {
      var root;
      if (opener.closed) {root=window.open('','passme','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no');

    Mit der Funktion fetch() wird ein neues Fenster über window.open geöffnet. Hier solltest Du mit dem Frameobjekt (<../../tecba.htm>) das betreffende Frame ansprechen und die geheime Seite drin laden.

    Frage, ist die Passwortabfrage über JavaScript? Ich konnte in Deinem Script nicht sehen woher das Passwort und Benutzername kommt. Wenn das ganze nur auf JS beruht, wollte ich noch sagen, wer etwas Ahnung
    von JS hat, knackt das in wenigen Sekunden.
    Wenn es hochgeheime Dinge sind, die Du schützen möchtest, würde ich eine serverseitige nehmen. htaccess ist sehr gut geeignet und leicht einzurichten. Dein Provider muß das natürlich unterstützen.

    mfg, André Laugks

    1. Hi!

      Ja, in ca. (26*2+6+10)^256
      (13252006883518434099207138231154705889725200546740753593451159693854090468805355378656004400724688568356548204931179070931148006814745602751123069353979095460422556158528307411539797240572613627062209665341891577273934232881967699204411563961819896184130776070542606782386357167171930808749279463312657937567049287255576225347811993033526505829858169443831289449022514556172189725471742844645553100780374861360626269128485246683776851669435836702726490102899008524517376)
      Sekunden. Wenn er für jeden Versuch eine Sekunde benötigt, und versucht das bei einem UNIX-Server zu machen. Er muß schließlich den Filename erraten... Also wohl doch nicht soooooo schnell. ;)

      Vermutlich geht's schneller da der Filename wohl keine 256 Zeichen hat und wohl auch nicht alle Sonderzeichen. Aber vielleicht habe ich noch Zeichen vergessen die in Filenames erlaubt sind. Dadurch würde die Zahl noch höher werden. Und außerdem muß man bedenken, daß die Netzverbindung das ganze auch noch verzögerte.

      Auch wenn JS-Passwortschutz unsicher ist, ist diese Variante nun doch ziemlich sicher. Wenn man sich das mal so überlegt zumindest, nicht wahr? ;)

      Ich gehe natürlich aus, daß es keine Möglichkeit gibt nen Directorylisting zu bekommen. ;)

      CU
      ArneB

      1. Hi!

        Tut mir leid. *duck*

        Rechnung verdreht. Doch nur soviel:

        256^(26*2+6+10)=

        57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416

        Cu
        ArneB
        *bisserlmitzähnenknirschwegenvertauschung.*

      2. Hi!

        Ja, in ca. (26*2+6+10)^256
        (13252006883518434099207138231154705889725200546740753593451159693854090468805355378656004400724688568356548204931179070931148006814745602751123069353979095460422556158528307411539797240572613627062209665341891577273934232881967699204411563961819896184130776070542606782386357167171930808749279463312657937567049287255576225347811993033526505829858169443831289449022514556172189725471742844645553100780374861360626269128485246683776851669435836702726490102899008524517376)

        Du bist ein wahrer Held! :-(

        location=password + ".htm"

        Ok, Passwort ist gleich Dateiname, habe ich nicht gesehen. Aber egal, ich jage auf die Seite einen
        URL-Grapper und dann...?

        mfg, André Laugks

        1. Moin!

          location=password + ".htm"

          Ok, Passwort ist gleich Dateiname, habe ich nicht gesehen. Aber egal, ich jage auf die Seite einen
          URL-Grapper und dann...?

          Der bringt Dir nur was, wenn die Datei von irgendwo aus verlinkt ist, und das soll sie ja eben *nicht* sein. Nur macht es sowieso keinen Sinn, soetwas zu implementieren. Man verraet einfach die geheime URL nur den Leuten, die sie wissen sollen. So einfach, und das Ergebnis ist dasselbe.

          Uebrigens Arne, die erste Rechnung war schon die richtige(re).

          So long

      3. Auch wenn JS-Passwortschutz unsicher ist, ist diese Variante nun doch ziemlich sicher. Wenn man sich das mal so überlegt zumindest, nicht wahr? ;)

        Ich gehe natürlich aus, daß es keine Möglichkeit gibt nen Directorylisting zu bekommen. ;)

        CU
        ArneB

        Hi,

        tja, du solltest aber davon ausgehen, dass es die Möglichkeit gibt, ein Listing zu bekommen... Vor Joe User kannst Du Deine Seiten schützen, aber ich befürchte, dass du 2/3 der hier Anwesenden selbst mit diesem - zugegeben nicht ganz unklugen - Passwortschutz nicht aufhalten kannst. Wie bereits gesagt, liegt die einzig sichere Lösung im Server Side Scripting... da gibts dann asp, oder php...etc. Ist aber providerabhängig.

        Viel Glück weiterhin,

        Jan

  2. Hi,

    ich möchte einen teil meiner homepage durch ein passwort sichern.

    http://www.praast.de/ffq/passwort.htm

    wie erreiche ich, daß nach eingabe des passwortes, die seite in einem anderen framefenster geöffnet wird. bis jetzt wird die "geheime" seite immer in meiner "linkleiste" geöffnet.

    http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/, FAQ.

    weitermachen!

    Selbst ist der User! ;-)

    Cheatah

  3. Hallo

    function goForit() {
      var location;
      var password;
      password=this.document.testform.inputbox.value
      location=password + ".htm"

    du solltest keine JS schlüsselwörter verwenden. vermutlich zeigt das script deshalb die seite in dem frame an.
    weil ansonsten, wird ja ein neues fenster geöffnet und das alte geschlossen, eigentlich, oder ?

    fetch(location)
      theKeeper=window.close()

    }
    function fetch(location) {
      var root;
      if (opener.closed) {root=window.open('','passme','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no');
        root.location.href = location;

    das ist nicht nötig, das erste argument von window.open ist die location.

    ist schon trickreich mit den dateinamen, aber nicht unbedingt klassisch ein passwortschutz (mit verschlüsselung und so).

    Struppi.