Login und Sperren von bestimmten Seiten
Hope1983
- php
0 Tom0 Sven Rautenberg
Halli hallo,
also ich hab ein etwas komisches System und daher auch komplizierte Frage.
Also kurz knapp mein Server:
Vista Business mit IIS 7 und Php
MySql
Zu meiner Frage:
Ich möchte nun auf meiner Seite ein Unterverzeichnis für Leute von außen sperren. Das geht ja recht leicht mit IIS Manager JEDOCH hab ich halt ein Problem mit den Usern.
Ich möchte User mit bestimmten Daten speichern und nicht jeden über Windows anlegen. Ich möchte auch dass diese ihre Daten dann online ändern können.
Das geht ja mit MYSQL ganz schön aber dann kann ich ja die Seite wiederrum nicht sperren weil ich keine User in Windows habe sondern in mysql.. Und in beiden anlegen wäre ne qual -.-
Ich hoffe ihr versteht was ich meine:
meineseite.de --> User kommen loggen sich ein, egal welche Methode
user sind eingeloggt im Bereich
--> bestimmte user sollen auch noch in das UNTERVERZEICHNIS kommen dass aber von außen nicht zu erreichen ist, also soll gesperrt sein!
Wie kann ich dass denn so hinbiegen dass es klappt? Htaccess geht glaub ich nicht mit IIS. Ich hoffe ihr habt Rat für mich :)
Bin noch n Anfänger nur zur info
Hello,
Wie kann ich dass denn so hinbiegen dass es klappt? Htaccess geht glaub ich nicht mit IIS. Ich hoffe ihr habt Rat für mich :)
Du kannst eigentlich nur dafür sorgen, dass z.B. lediglich eine einzige Ressoruce (PHP-Script) per HTTP/HTTPS erreichbar ist und diese(s) die Anfragen bearbeitet.
Dieses Script ist dann von jedermann erreichbar. Um die Datenbank abfragen zu können, benötigst Du dann Username und Passwort. Es ist allerdings nicht empfehlenswert, das Passwort für den Datenbankzugriff per HTTP im Klartext zu übertragen.
Wenn die Datenbank auch per Port (z.B. 3306) über Netzwerk, also nicht nur vom Localhost erreichbar ist, dann wäre das eine echte Sicherheitslücke.
Die erste Frage, die man also klären sollte: Wie sicher muss das System werden?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Naja so sicher muss das System nicht sein.
Das läuft alles auf meinem eigenen PC. Es soll bloß keiner von außen auf
meineseite.de/unterverzeichnis greifen können aber User die eingeloggt sind unzwar bestimt user meinetwegen "family" sollen dann auf das Unterverzeichnis könne.
In der Sql datenbank sind alle user schon eingetragen und ihre mitgliedschaft.
Was meintest du damit:
Du kannst eigentlich nur dafür sorgen, dass z.B. lediglich eine einzige Ressoruce (PHP-Script) per HTTP/HTTPS erreichbar ist und diese(s) die Anfragen bearbeitet.
Hab ich nich so ganz verstanden? Kann man das einstellen bei iis das ein Verzeichnis NUR über eine bestimmte Datei erreichbar ist oder so? Also zum Beispiel nur über memberbereich.php. Ich mein dort kann mans ja einstellen dann ob bestimmte user den link dafür bekommen oder nicht ist klar.
Hello,
Hab ich nich so ganz verstanden? Kann man das einstellen bei iis das ein Verzeichnis NUR über eine bestimmte Datei erreichbar ist oder so? Also zum Beispiel nur über memberbereich.php. Ich mein dort kann mans ja einstellen dann ob bestimmte user den link dafür bekommen oder nicht ist klar.
Stell Dir vor, du hättest eine Funktion
is_member()
{
### ... hochkomplizierte Sache ...
### Mit Hilfe der globalen Arrays $_SESSION, $_POST, $_GET, $_COOKIE
### und einer Datenbankabfrage (Update-Versuch) feststellen, ob der
### Besucher dem System bekannt ist, und die Voraussetzungen erfüllt
### $ok = sql_query("Update userdaten ....where session_id() = 'blah' and ... and ... and...");
if (!$ok)
{
die('auf_vollständige_valide_HTML_Seite_mit_Anmeldeaufforderung_umleiten');
}
return $_uservars;
}
Dann kannst Du diese Funktion entweder in jede Ressource (Seite) einbauen, die Du anbieten willst, oder aber Du kannst eine einzige Ressource anbieten, die diese Prüfung vornimmt, und dann den Wunsch, eine andere Ressource sehen zu wollen, befriedigt.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Moin!
Zu meiner Frage:
Ich möchte nun auf meiner Seite ein Unterverzeichnis für Leute von außen sperren. Das geht ja recht leicht mit IIS Manager JEDOCH hab ich halt ein Problem mit den Usern.
Ich möchte User mit bestimmten Daten speichern und nicht jeden über Windows anlegen. Ich möchte auch dass diese ihre Daten dann online ändern können.
Das geht ja mit MYSQL ganz schön aber dann kann ich ja die Seite wiederrum nicht sperren weil ich keine User in Windows habe sondern in mysql.. Und in beiden anlegen wäre ne qual -.-
Du hast das klassische Problem, HTTP-Authentifizierung machen zu wollen, aber die Userdaten nicht in der normalerweise zuständigen Userdatenbank des Webservermechanismus für HTTP-Authentifizierung platzieren zu können.
Unter Apache wäre ein analoges Konstrukt, dass die Userdaten in einer MySQL-Datenbank stehen sollen, aber die Konfiguration mittels .htaccess und .htpasswd-Dateien erfolgt. Wobei man in dieser Situation immer noch den Hack versuchen könnte, regelmäßig oder bei Änderungen aus der Datenbank eine neue Datei .htpasswd zu generieren.
Beim Einsatz des IIS ist die Sache etwas komplizierter. Da kann man zwar einfach ein Häkchen machen, um ein Verzeichnis nur angemeldeten Usern zugänglich zu machen, aber der IIS fragt dann die Windows-Benutzerdatenbank, und nicht MySQL.
Für den Apachen gibt es ein spezielles Modul mod_auth_mysql, mit dem man anstelle der klassischen .htpasswd-Datei eine MySQL-Abfrage zur Benutzerauthentifizierung einbinden kann.
Sowas sollte es für den IIS doch eigentlich auch geben können. Allerdings ist die Frage, ob dabei nicht irgend ein Hersteller für Lizenzgebühren die Hand aufhält.
- Sven Rautenberg