sad_dragon Geschrieben 21. August 2006 Geschrieben 21. August 2006 Hi leute, folgende Problematik: Ich habe eine Website (.htm und .asp files), der User muss sich einloggen, das jeweilige Passwort ist verschlüsselt in einer SQL Server DB abgelegt und als Webserver läuft IIS. Wie kann ich das Passwort abprüfen, ohne dass ich es im Quellcode hinterlegen muss und ohne dass man die Login-Seite überspringen kann? Lösungen wie .htaccess fallen hier weg, weil ich IIS anstatt Apache laufen hab. Wäre dankbar für ideen. Beim googeln finde ich nix. mfg Dragon Zitieren
Amstelchen Geschrieben 21. August 2006 Geschrieben 21. August 2006 das jeweilige Passwort ist verschlüsselt in einer SQL Server DB abgelegt [...] Wie kann ich das Passwort abprüfen, ohne dass ich es im Quellcode hinterlegen muss in dem du jenes welches aus der datenbank abgreifst. ausgehend von einem formular ein HTTP POST auf ein script, welches über den benutzernamen als SELECT-kriterium das passwort des benutzers aus der DB holt, diesen string mit dem gePOSTeten vergleichen. wenn sie gleich sind, eine session beginnen, wenn nicht, den user gar nicht erst reinlassen. zugriffsdaten und ähnliches zentrales in die global.asa, das ganze sauber implementieren, fertig. alternativ liesse sich das vermutlich auch über die HTTP AUTH methode bewerkstelligen, indem dem client die entsprechenden HTTP-header geschickt werden und dieser sich dann authentifizieren muss. beispiele sind dafür ja bereits en masse vorhanden, z.b. bei aspheute. s'Amstel Zitieren
sad_dragon Geschrieben 21. August 2006 Autor Geschrieben 21. August 2006 Ja danke schon mal für die Antwort, nur: Mein Passwort steht in der Datenbank nur verschlüsselt und die User Eingabe ist unverschlüsselt. Wie kann ich das abgleichen? Zitieren
Amstelchen Geschrieben 21. August 2006 Geschrieben 21. August 2006 du kennst doch sicherlich den algorithmus, mit dem die ursprünglichen klartextpasswörter verschlüsselt wurden - z.b. MD5 oder crypt. wenn du jetzt das auf der .asp-seite vom benutzer eingegebene passwort genauso verschlüsselst/hashst, kannst du beide miteinander vergleichen. s'Amstel Zitieren
etreu Geschrieben 21. August 2006 Geschrieben 21. August 2006 Du kannst es verschlüsselt prüfen. 1. Möglichkeit: mit asp (Pseudocode): pwCrypted = cryptAlg(pwPlain) 2. Möglichkeit: mit SQL: SELECT ... HAVING password = CRYPT('pwPlain'); Zitieren
sad_dragon Geschrieben 22. August 2006 Autor Geschrieben 22. August 2006 Hi danke für die Antworten. Nächstes Problem: Ich hab hier nen Lösungsansatz, der in FrontPage (ja, ich weis...) in der vorschau problemlos dargestellt wird, wenn ich aber das web veröffentliche und über den Browser drauf zu greif funktioniert der aufruf von access2.htm nicht. Quelltext: <html> <head> <meta http-equiv="Content-Language" content="de"> <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>Kennwort eingeben</title> <script language="javascript" src="md5.js"></script> <script language="javascript"> <!-- function codeit() { if(document.login.password.value != "") { var str = document.login.password.value; document.login.response.value = MD5(str); document.login.password.value = ""; } if(document.login.response.value !="" && document.login.username.value !="") { document.login.action="login.asp"; } } // --> </script> </head> <body> <form method="POST" action="access2.htm" onSubmit="codeit();" name="login"> <p> </p> <p>Benutzername: <input type="text" name="username" size="20" value=""></p> <p>Kennwort eingeben: <input type="password" name="password" size="20" value=""></p> <input type="hidden" name="response" value=""> <p><input type="submit" value="Abschicken"></p> </form> <p> </p> </body> </html> Vielleicht könnt ihr mir helfen. Danke im Vorraus. mfg dragon Zitieren
etreu Geschrieben 22. August 2006 Geschrieben 22. August 2006 Soweit ich mich erinnere ist POST nicht verträglich mit .html (es denn es wird auf dem Server anders gemapt). Ausserdem warum benutzt du Javascript, wenn du das Passwort sowieso Klartext überträgst? Mach es doch gleich serverseitig. Zitieren
sad_dragon Geschrieben 22. August 2006 Autor Geschrieben 22. August 2006 Des passwort wird bei md5.js in md5 umkodiert. und dann will ich das kodierte passwort mit der DB abgleichen. Wie kann ich das serverseitig lösen? mfg Dragon Zitieren
etreu Geschrieben 22. August 2006 Geschrieben 22. August 2006 Bei PHP würde ich md5($passwort); nutzen können. Bei ASP kann ich dir da leider nicht weiterhelfen. Ich bin aber sicher, dass es da auch was für VB und/ oder C# gibt. Für die sichere Übetragung gibt es ja auch noch SSL. Zitieren
Amstelchen Geschrieben 22. August 2006 Geschrieben 22. August 2006 wie Enrico T bereits gepostet hat: entweder das passwort im klartext in die DB schiessen und dort mit einer DB-internen crypt-funktion (achtung, heisst nicht wirklich so!) überprüfen, oder das ganze in deinem .asp machen, indem du dort das von user eingegebene "hashst" und dann den hash in die DB reinschiesst. MD5 für ASP & VB z.b. hier: http://www.frez.co.uk/freecode.htm#md5 s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.