Passwort-"Schutz" mit javascript

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

Passwort-"Schutz" mit javascript

Beitragvon justmike » Mo 25 Okt, 2004 13:27

hoffentlich seids ihr euch nicht zu schad fĂĽr eine scriptsprache...*g*
aber ich wollt mal in die runde fragen, wie "sicher" ein javascript-passwort schutz ist, der die eingabe des users an die *.htm endung dranhängt und den user somit nur dann an die geheime site weiterleitet, wenn dieser den genauen namen von dieser kennt.

kann man den namen dieser site ausser mit probieren noch irgendwie herausfinden? gibt es vielleicht eine möglichkeit, sich den inhalt eines verzeichnisses auf dem server anzuschauen, trotz index.htm-datei?

all the best,
mike.
justmike
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 48
Registriert: Mo 12 Apr, 2004 22:00

Re: Passwort-"Schutz" mit javascript

Beitragvon hannibal218bc » Mo 25 Okt, 2004 14:29

justmike hat geschrieben:wie "sicher" ein javascript-passwort schutz ist, der die eingabe des users an die *.htm endung dranhängt und den user somit nur dann an die geheime site weiterleitet, wenn dieser den genauen namen von dieser kennt.


Naja, der Passwortschutz ist genausogut wie wenn Du ohne Javascript hinschreibst, "tippe $Passwort und .html in die Adresszeile ein", oder halt schöner formuliert ;-)

Es gibt - wenn der Webserver schlecht konfiguriert ist oder Bugs hat - durchaus Wege, ein Directory Listing zu bekommen.
Auf einem gut konfigurierten, bug-losen Webserver sollte das jedenfalls nicht gehen, wenn es nicht gewollt ist.

Bedenke aber, dass jedermann auf die passwortgeschützte Seite verlinken kann, und wenn einer einmal so einen Link gesetzt hat, dann ist Dein geheimer Inhalt -- wenns blöd geht -- gleich einmal im Google zu finden, oder noch besser, im Google Cache abgespeichert.
Trotzdem solltest Du nicht in der robots.txt vermerken wie die geheime Seite heiĂźt, und dass sie tabu ist.. ;-)


lg
-h
hannibal218bc
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 382
Registriert: Mi 18 Aug, 2004 21:11
Wohnort: Wien

re

Beitragvon justmike » Di 26 Okt, 2004 01:06

und welche wege gibt es, einem schlecht konfigurierten webserver ein directory listing zu entlocken?
bzw. wie kann man jetzt feststellen, ob der eigene host sicher aufgesetzt ist?

all the best,
mike :)
justmike
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 48
Registriert: Mo 12 Apr, 2004 22:00

Beitragvon adsl » Di 26 Okt, 2004 07:25

Machs mit Flash!
Ist glaube ich sicherer!

LG
WGT624 V1 Firmware 4.1.11, WGE101 RC2, 2 x WT511T
Inode xDSL 1024/256 Flat
http://www.dr-kokol.com
adsl
Board-User Level 1
Board-User Level 1
 
Beiträge: 559
Registriert: So 14 Dez, 2003 19:10
Wohnort: Graz

Beitragvon hannibal218bc » Di 26 Okt, 2004 19:01

adsl hat geschrieben:Machs mit Flash!
Ist glaube ich sicherer!
LG


Kannst Du das irgendwie argumentativ untermauern???

justmike hat geschrieben:und welche wege gibt es, einem schlecht konfigurierten webserver ein directory listing zu entlocken?
bzw. wie kann man jetzt feststellen, ob der eigene host sicher aufgesetzt ist?


Zuerst finde heraus, um welche Web-Server-Software es geht, und dann frage am besten dort: :google: weiter.


lg,
-h
hannibal218bc
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 382
Registriert: Mi 18 Aug, 2004 21:11
Wohnort: Wien

re

Beitragvon justmike » Di 02 Nov, 2004 12:25

es is ein apache 1.3.20 auf suse linux. google hat mir bis jetzt nicht wirklich weitergeholfen.
any help for me?

lg,
mike. :)
justmike
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 48
Registriert: Mo 12 Apr, 2004 22:00

Beitragvon dfx » Di 02 Nov, 2004 12:33

wenn du die berechtigungen des verzeichnis richtig setzt, ist ein dir listing (mit ausnahme höherer gewalt) unmöglich. also zb ein chmod 711 aufs dir (wobei owner != user des apache sein muß) und schon is die sache gegessen... zusätzlich kannst du eine leere index.html dort rein stellen.
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon nauti » Di 02 Nov, 2004 17:42

Hallo,
ich konnte mir jetzt nicht den ganzen Thread durchlesen, weil ich im Stress bin aber ich weiĂź um was es geht.

ich habe mal ein kleines script gemacht. Vielleicht brauchts wer:

Code: Alles auswählen
<script>
function submitentry(){
var password = document.password1.password2.value.toLowerCase();
var username = document.password1.username2.value.toLowerCase();
var passcode = 1;
var usercode = 1;

for(i = 0; i < password.length; i++)
{
   passcode *= password.charCodeAt(i);
}
for(x = 0; x < username.length; x++)
{
   usercode *= username.charCodeAt(x);
}
if(usercode == 129565325 && passcode == 148060224)
{
   window.location=password+"secure.html"
} else {
   alert("password/username combination wrong. Please try again.")}
}
</script>
<form name="password1">
  <font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"><strong><b><font color="#000000">Enter username:</font></b> </strong> <font color="#000000">
  <input type="text" name="username2" size="15" value="">
  <br>
  <strong><b>Enter password:</b> </strong> </font>
  <input type="password" name="password2" size="15">
  <input type="button" value="Submit" onClick="submitentry()" name="button">
  </font>
</form>



user: seas
pass: huhu

Noch zur Sicherheit: es ist glaub ich etwas mĂĽhsamer ihn zu knacken. Glaub ich zumindest *G*
nauti
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 30
Registriert: Mo 29 Dez, 2003 18:53

Beitragvon hannibal218bc » Di 02 Nov, 2004 21:17

nauti hat geschrieben:Noch zur Sicherheit: es ist glaub ich etwas mĂĽhsamer ihn zu knacken. Glaub ich zumindest *G*


Sicherer als ein Redirect auf $password.".html" ist es auch nicht -- warum auch? Im Endeffekt machst Du ja auch nix anderes.

Besser wäre es vermutlich, die Codes als MD5-Hashes abzulegen statt durch Multiplikation...


lg,
-hannes

PS.: Wenn man die "Codes" faktorisiert, erhält man zB. 148060224 = 2.2.2.2.2.2.3.3.3.3.13.13.13.13 , da Du nur lowercase zulässt müssen alle charcodes von 65-90 liegen (wenns nur a-z ist), damit sind die Kombinationsmöglichkeiten schon eher wenige. ;-)
hannibal218bc
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 382
Registriert: Mi 18 Aug, 2004 21:11
Wohnort: Wien

Beitragvon lordpeng » Di 02 Nov, 2004 21:25

>Besser wäre es vermutlich, die Codes als MD5-Hashes abzulegen statt durch Multiplikation...

100%iges ACK nur dumm dass javascript wohl kaum crypt() wie man's bei perl findet unterstĂĽtzten wird ... d.h. man mĂĽssts selber stricken ... oder halt auf was im internet wie z.b. das http://pajhome.org.uk/crypt/md5/md5.js zurĂĽckgreifen ...

trotzdem wĂĽrd ich sagen, wenns sicher sein soll, wĂĽrd ich auf javascript komplett verzichten weil man ja immer sieht was da vor sich geht ...
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon hannibal218bc » Mi 03 Nov, 2004 10:44

lordpeng hat geschrieben:100%iges ACK nur dumm dass javascript wohl kaum crypt() wie man's bei perl findet unterstĂĽtzten wird


crypt() verwendet ein anderes - älteres, schwächeres - Verfahren als MD5.


lg
-h
hannibal218bc
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 382
Registriert: Mi 18 Aug, 2004 21:11
Wohnort: Wien

Beitragvon hannibal218bc » Mi 03 Nov, 2004 10:46

lordpeng hat geschrieben:100%iges ACK nur dumm dass javascript wohl kaum crypt() wie man's bei perl findet unterstĂĽtzten wird


crypt() verwendet ein anderes - älteres, schwächeres - Verfahren als MD5.

Aktuell wĂĽrde man vermutlich SHA1 oder sonstwas aus dem AES-Standard fĂĽr kryptografisch ordentliche Implementierungen verwenden.


lg
-h
hannibal218bc
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 382
Registriert: Mi 18 Aug, 2004 21:11
Wohnort: Wien

Beitragvon lordpeng » Do 04 Nov, 2004 20:29

>crypt() verwendet ein anderes - älteres, schwächeres - Verfahren als MD5.

also hier verwendets definitiv MD5 und das schon recht lange, da ich linux-benutzerkonten mit einem selbstgebauten perl-script einfĂĽge
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon dfx » Do 04 Nov, 2004 21:34

also das standard crypt() ist das alte DES crypt: 2 zeichen salt plus 11 zeichen hash. neuere versionen dieser funktion unterstĂĽtzen auch andere verfahren, eben zb md5, aber das sind erweiterungen der funktion.
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon TheProdigy » Do 04 Nov, 2004 23:09

Alles was in Javascript programmiert ist, kann man nachvollziehen, da immer der gesamte Sourcecode lokal vorhanden ist. Die einzige Schwierigkeit besteht im Erraten einer richtigen Benutzereingabe, d.h. ein Wert, der eine existierende Seite ergibt.

Man kann es aber dem Anwender auch erschweren, den Javascript-Source zu erhalten - z.B. das Online-Spiel http://www.gw-2nd.de verwendet derartige Tricks (wie sie genau funktionieren, weiss ich allerdings auch nicht). Jedenfalls erfolgt bei Aufruf "View page source" des Browsers ein erneuter Serverzugriff, der abgefangen wird (hab es mit IE, Opera und Mozilla probiert - mit Hilfe von Venkman war es dann aber auch kein Problem mehr *g*).

Die einzig sinnvolle Möglichkeit ist IMHO die Authentifizierung des Apache-Server zu verwenden (sofern du die Möglichkeiten dazu hast). Jedenfalls ist es wesentlich einfacher und sicherer als jede Javascript-Methode.

HTH
TheProdigy
Board-Mitglied
Board-Mitglied
 
Beiträge: 101
Registriert: Mi 05 Mai, 2004 10:41

Nächste

ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 30 Gäste