![]() |
[php] login per formular
Hallo!
Ich habe mit php einen Login für meine Homepage geschrieben. Dieser sucht in einer Datei nach dem Benutzernamen und dem dazugehörigen Passwort. Erst wenn das Passwort richtig ist, wird auf eine andere Seite weitergeleitet. Mein Problem ist nun folgendes: Die Datei(en) liegt in einem Ordner, der per .htaccess und .htpassword geschützt ist. Sobald die Datei aufgerufen wird, erscheint das Login-Fenster für .htaccess. Dieses möcht ich unterbinden. Trotzdem soll das Verzeichnis geschützt bleiben, da es ja als "restricted area" geführt werden soll. Gibt es dafür irgendeine simple Lösung? Danke. seifman |
Re: [php] login per formular
so nicht, du könntest aber die passwörter gehasht abspeichern sodass es nichts macht wenn man sie als plaintext sehen kann und ergo den httaccess schutz rausnehmen!
|
Re: [php] login per formular
Wenn es per .htaccess und .htpasswd geschützt ist, dann glaube ich nicht, dass du eine Datei dort so direkt rauslesen kannst, da ja der WebServer selber die Restriktion drauflegt und nicht PHP.
Einfache Möglichkeiten wären entweder
Das fällt mir spontan dazu ein. Grüße, Mario |
Re: [php] login per formular
Die Daten in eine DB zu speichern, finde ich überzogen, da es eh nur eine Hand voll User sind. Also habe ich sie auch verschluesselt in einer Datei hinterlegt.
Kenn mich mit DirectoryListing net so aus, denke aber mal, daß es einfach nur für die Darstellung eines Verzeichnisses dient. Wie funktioniert das ganze dann?? Kann ich dann also die .htPassword weglassen ?? mfg seifman |
Re: [php] login per formular
Du könntest auch PHP mißhandeln und die Daten in 'ner .php-Datei speichern
Code:
Also am einfachsten am Anfang und Ende der Datei die 2 Zeilen einfügen und jede Datenzeile als Kommentar kennzeichnen.
<?php
//[color=red]Zeile 1[/color] //[color=red]Zeile 2[/color] //[color=red]Zeile 3[/color] ?>Zugriff verweigert Wenn jetzt jemand von aussen darauf zugreift, dann macht es nicht's, da ja nur "Zugriff verweigert" angezeigt wird. Beim einlesen (z.B. mit dem Befehl FILE) braucht man ja nur die erste und letzte Zeile auslassen und die 2 zusätlichen Zeichen ignorieren. Ich selber hab's zwar noch nicht bei mir eingebaut, und speichere die Daten in einfachen Dateien (mit 'ner anderen Endung). Allerdings solltest du dennoch die Passwörter hashen - die Namen hab ich aber nicht gehasht, da ja sonst die Userverwaltung erschwert wird, wenn man die Namen nicht mehr entschlüsseln kann. [edit+add] mySQL war mir auch zu übertrieben für meinen Fall |
Re: [php] login per formular
wenn sich in dem verzeichnis keine weiteren sensiblen daten befinden und die die userdaten verschlüsseltst kannst du den passwortschutz mit htaccess getrost weglassen.
|
Re: [php] login per formular
Stimmt, die Usernamen zu hashen wäre bissl übertrieben, aber nicht unbedingt verkehrt. ^^
Aber wenn er die Methode mit dem PHP-Missbrauch nutzt, kann er doch gleich ein Array mit den Usern anlegen:
Code:
Dadurch spart man sich die Arbeit, die Datei auszulesen, die Zeichen zu entfernen usw. ...
<?
$AllowedUsers = array ("Hans:Hkhs676", "Gustav:235GHnvb", ...); ?>Zugriff verweigert! Verzeichnis-Listings kannst du mit der Options-Direktive (bei Apache) unterbinden: "Options -Indexes" ... in die .htaccess, allerdings muss dann auch AllowOveride Options erlauben. Grüße, Mario |
Re: [php] login per formular
das mit dem array ist eine gute idee, würde ich an deiner stelle so machen!
|
Re: [php] login per formular
Trotzdem würde ich für sowas mySQL bevorzugt verwenden, da dies noch weiter weg vom Zugriff eventueller User liegt (dem Hoster wollen wir ja nichts unterstellen ...) und nebenbei noch viel mehr Vorteile mit sich bringt.
|
Re: [php] login per formular
Da habe ich mich vieleicht falsch ausgedrückt.
Ich habe in dem aufzurufenden Verzeichnis sensible Daten zu liegen, welche auch nur für die vorher definierten User zugänglich sein sollen. Daher habe ich auch keine andere Lösung gefunden, als dieses mit htaccess zu schützen. Würde ich das rauslassen, so kann man jederzeit auf dieses verzeichnis per url zugreifen, vorausgesetzt man kennt dessen namen. mfg seifman |
Re: [php] login per formular
und warum verlinkst du nicht gleich auf das verzeichnis (dann kommt auch der password input prompt) und sparst dir den php login screen?
|
Re: [php] login per formular
schon. aber genau diesen screen möchte ich halt nicht sehen.
|
Re: [php] login per formular
klar, das mit dem Array würde auch gehn, allerdings könnte es da auch ein/zwei... Probleme geben.
Wenn zum Beispiel mal ein kleinerer Datenfehler in der Datei ist, könnte sie ja unter Umständen nicht mehr eingebunden werden, wenn der PHP-Parser mekert sind alle Daten weg und bei der anderen Methode kann man ja noch den Rest auslesen... Und ausserdem muß man auch noch auf Sonder- und Steuerzeichen achten, damit der Stringaufbau nicht gestört ist (z.B. auf das kein ' im Namen vorkommt, oder dieses codiert wird) [add] ich weiß ja nicht, was du für weitere Daten hast, aber kannst du diese nicht auch noch anders sichern, oder eventuell auch dein Verzeichnis aufteilen, also in eines mit htaccess-Schutz und eines ohne. |
Re: [php] login per formular
Hallo,
ich wollt mich auch mal zu dem Thema äußern, und ich denk ich hab das gleiche Problem. Ich will sozusagen einen Benutzerbereich erstellen für einen Verein, wo jeder sich persönlich einloggen kann, und anschliessend auf Dateien zugreifen kann, die ich zum Download anbiete. Diese Dateien müssen natürlich in einem .htaccess geschützten Bereich liegen, da man sonst, unter Kenntnis der URL, auch ohne sich einzuloggen an die Dateien rankommt. Daher ist mein Anliegen, nach erfolgreichem einloggen als User via einem PHP Skript, das vorher als .htaccess geschützte Verzeichnis zu entsperren, und ganz normal drauf zugreifen zu können. Die Frage ist also die Gleiche wie die von seifmann: wie übergebe ich im PHP Skript die Zugangsdaten fürs .htaccess Verzeichnis? Über Delphi weiß ichs wie ichs mach, sprich wie ich bei einem Download direkt das .htaccess User und Passwort mit übergebe, aber in PHP komm ich da nicht dahinter. Gruß, Tom |
Re: [php] login per formular
Hi seifman!
Wenn du auf .htaccess verzichten möchtest, dann kannst du folgendes machen: Die Dateinamen ändern, und diese in einer php-Datei eintragen. (so wie es auch mit den Avataren in der DP geschieht). Einen 30stelligen Dateinamen, der aus alphanumerischen Zeichen besteht erratet man nicht so schnell. Den Download machst du über die php-Datei nach erfolgtem login. Mit Hilfe der HTTP-Header kannst du dem Benutzer den serverseitigen Dateinamen komplett verbergen, und die Dateien sind ziemlich geschützt, allerdings nicht 100%ig. Greetz alcaeus |
Re: [php] login per formular
Zitat:
Um das zu umgehen müßtest du alle Dateien in ein nicht öffentlich zugängliches Verzeichnis legen und dann per PHP Skript bei erfolgreicher Authentizierung dem Browser übergeben. Da gibt es aber so seine Probleme, vorallem mit Dateinamen und man muß natürlich aufpassen das das Skript nur gültige Dateinamen annimmt. |
Re: [php] login per formular
Zitat:
|
Re: [php] login per formular
es gibt ja auch möglichkeiten beim z.B. beim Download nicht den Dateinamen direkt anzugeben, sondern das über ein Script zu leiten, so ist es auch möglich den original Dateinamen zu verbergen, so das sie sich sogar in einem ungeschützten Bereich liegen kann (da ja "keiner" den Namen kennt)
z.B. ![]() man könnte ja auch noch in dem Script einiges prüfen (z.B. über die Kekse, oder den Referer, oder ähnliches, ob der Zugriff überhaupt erlaubt ist) |
Re: [php] login per formular
Zitat:
Delphi-Quellcode:
Gruß,
hConnect := InternetConnect(hSession, PChar(HostName),
INTERNET_DEFAULT_HTTP_PORT, PChar(FUserName), PChar(FPassword), INTERNET_SERVICE_HTTP, 0, 0); |
Re: [php] login per formular
Stimmt @Jelly, dabei fällt mir ein,
man kann ja auch in der URL das Passwort und den Usernamen übergeben. Und da es ja möglich sein sollte auch eine Datei unter Angabe der direkten URL einzulesen, müßte das doch auch gehn?
Code:
(ich weiß jetzt gerade nicht, ober der URL-Aufbau so ganz richtig ist, aber so in etwa sollte es wohl aussehn)
s = file('ftp://username:passwort@url.de/dat.ei');
|
Re: [php] login per formular
Zitat:
|
Re: [php] login per formular
ich meinte ja auch nicht nur den, aber z.B. die Daten von LogInScript sind eine gute Möglichkeit - schließlich muß dieses ja wisen, ob jemand rein darf, oder nicht.
[edit] und den Referer hab ich bei mir auch nur vorgesehn, damit es "nicht möglich" ist eine Datei direkt in 'ne andere Webseite einzubauen, wo ich das nicht möchte. |
Re: [php] login per formular
Hy
also was auf jeden Fall funktioniert ist, wenn du einfach per js auf das htaccess geschütze Vereichnis verlinkst und einfach die logindaten davorschreibst... etwa so: username:password@www.meinserver.de/geschuetztesverzeichnis/ dann kommt die htaccess-box nur, wenn du nen falsches Login eingibst ... anders ist es afaic nicht möglich eine htaccess Abfrage zu kapseln... greetz -FastJack2 |
Re: [php] login per formular
Zitat:
|
Re: [php] login per formular
Hi!
Zitat:
Pack doch die Dateien einfach in ein .htaccess-geschützes Verzeichnis, auf das kein User zugreifen kann. Wenn du nach überprüftem Login die Dateien anzeigen lassen willst, kannst du einfach ein include('my_sec_dir/'...); oder ein file('my_sec_dir/'...); machen. PHP schert sich nämlich einen Dreck um irgendwelche Apache-.htaccess-Files. Mamphil |
Re: [php] login per formular
äh nö tut es scheinbar nicht sonst würde ja so wie ers hat funzen oder was? :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz