Frage zur Sicherheit - zugiffsrechte

supersalzi

Erfahrenes Mitglied
Hi,

Ich habe ein funktionierendes login system auf php session basierend. so weit so gut.
Ich includiere bestimmte dateien wenn die Session valide ist.
Nun habe ich aber festgestellt, das ich, wenn ich den Pfad kenne, einzeln auf die Dateien zugreifen kann. Sperre ich allerdings den ganzen Ordner mittles .htaccess kann ich auf Dateien nicht mehr zugreifen, auf die ich eigenlich zugreiffen will (z.B. logout.php).

Ist es eine gute Idee das verzeichnis mittles .htassess zu sperren?

gibt es sonst noch lösungen?

Danke,
salzi
 
Hi,
die zu includierenden Files außerhalb deines Web-Roots legen, wie problemlos sich das bei WebHostern einrichten lässt ist ein anderes Thema ;)

Schau mal in deine phpinfo() -> include_path

-chris
 
Zuletzt bearbeitet:
Hallo!

Solange Du in den Dateien PHP-Code einfügen kannst, könntest Du doch den Inhalt in eine if-Abfrage packen.
Ich habe es zwar nicht probiert, aber da die Session in den includeten Dateien ja nicht gestartet wird, müsste es eigentlich funktionieren.
PHP:
<?php
if(isset($_SESSION['user_id'])) {
     if($_SESSION['user_id'] == $row['user_id']) {
?>
Hier den sonstigen Code (z.b. auch HTML-Code oder einfach nur Text).
<?php
     }
}
?>
$_SESSION['user_id'] ist die Benutzeridentifizierung die Du beim Login in der Session festgelegt hast und $row['user_id'] ist die Benutzeridendifizierung die Du in der Datenbank hinterlegt und beim Login abgefragt hast (ggf. also anpassen).
Zuerst wird also geprüft ob die Session user_id existiert (damit es im Fall von false nicht zu einer Notice kommt)
Anschliessend wird geprüft ob die user_id aus der Session mit der user_id aus der Datenbank übereinstimmt.
Wenn dieses der Fall ist, wird der Rest ausgegeben bzw. verarbeitet.
Wenn es nicht der Fall ist, wird auch nichts ausgegeben..... Du bekommst also nur eine leere Seite zu Gesicht.

Gruss Dr Dau
 
ok, beides klingt nicht schlecht.
DrDau's Variante finde ich in Bezug auf text oder xml Dateien nicht so geeignet. Ich dachte mir wären Sessions so klar (habe die Login Scripte selbst geschrieben) allerdings gibt es da nichts in Datenbanken.

Da es wahrscheinlich schwierig wird dinge auserhalb des Web-Root anzulegen denke ich immer noch, das es mit .htaccess wohl ein ganz guter weg wäre.

Gibts da noch andere Meinungen oder Lösungen?
 
Zurück