Dokumente auf Webserver schützen

Ich habe auf einem Webserver eine Art Dokumentenverwaltung mit Usern programmiert.

jeder User kann auf seine Dokumente zugreifen über Webseite (PHP).

Wie kann ich jedoch verhindern, dass ein user ein Dokument eines anderen lesen / laden kann, selbst wenn er die korrekte URL kennt? (zb http://www.meinserver.de/docs/dokument1.xls)

Am liebsten wäre es mir, wenn man das Dokument nur über die PHP-Seite öffnen kann und bei eienm Zugriff über die Adresszeile im Browser das nicht geht!

Funktioniert sowas & wenn ja, wie könnte man das machen?

Weiterführend:

Gibt es eine Möglichkeit, den Zugriff auf eine Webseite nur so zu gestatten, dass es nur von speziellen Rechnern funktioniert? (Das die Seite da nur aufgerufen werden kann)

Wie kann man einen Login so gesatlten, dass sich Username & Passwort nicht speichern lassen? Bisher hab ich ein Formularfeld, diese können aber gespeichert werden.

Für Tipps wäre ich sehr dankbar!

Gruß… Björn

Wie kann ich jedoch verhindern, dass ein user ein Dokument
eines anderen lesen / laden kann, selbst wenn er die korrekte
URL kennt? (zb http://www.meinserver.de/docs/dokument1.xls)

Die „einfachste“ Lösung die mir einfällt, wäre, die Dokumente in einem Verzeichnis zu speichern, das per .htaccess so verriegelt ist, dass nur von localhost aus darauf zugegriffen werden kann und dann per skript nicht einen Link auf die Datei, sondern den Dateiinhalt selber (achtung: auf content-type achten!) auszuliefern.

Weiterführend:

Gibt es eine Möglichkeit, den Zugriff auf eine Webseite nur so
zu gestatten, dass es nur von speziellen Rechnern
funktioniert? (Das die Seite da nur aufgerufen werden kann)

.htaccess, Zugriff auf bestimmte IP-Adressen beschränken. Der Ansatz stirbt natürlich sofort, sowie jemand Zugriff benötigt, der eine dynamische IP hat.

Wie kann man einen Login so gesatlten, dass sich Username &
Passwort nicht speichern lassen? Bisher hab ich ein
Formularfeld, diese können aber gespeichert werden.

Garnicht. Was gespeichert wird hängt alleine vom Browser ab, da hast du vom Server aus keinerlei Einfluss. Warum soll das nötig sein?

Wie kann ich jedoch verhindern, dass ein user ein Dokument
eines anderen lesen / laden kann, selbst wenn er die korrekte
URL kennt? (zb http://www.meinserver.de/docs/dokument1.xls)

Die „einfachste“ Lösung die mir einfällt, wäre, die Dokumente
in einem Verzeichnis zu speichern, das per .htaccess so
verriegelt ist, dass nur von localhost aus darauf zugegriffen
werden kann und dann per skript nicht einen Link auf die
Datei, sondern den Dateiinhalt selber (achtung: auf
content-type achten!) auszuliefern.

Klingt gut & braubar! Danke! Kannst du mir evtl. sagen, wie das Skript aussehen muss?
DANKE schonmal im Voraus

Weiterführend:

Gibt es eine Möglichkeit, den Zugriff auf eine Webseite nur so
zu gestatten, dass es nur von speziellen Rechnern
funktioniert? (Das die Seite da nur aufgerufen werden kann)

.htaccess, Zugriff auf bestimmte IP-Adressen beschränken. Der
Ansatz stirbt natürlich sofort, sowie jemand Zugriff benötigt,
der eine dynamische IP hat.

Danke – Ist ein Ansatzpunkt! Ich glaube, es kommen nur eine überschaubare menge an IPs in Frage!

Wie kann man einen Login so gesatlten, dass sich Username &
Passwort nicht speichern lassen? Bisher hab ich ein
Formularfeld, diese können aber gespeichert werden.

Garnicht. Was gespeichert wird hängt alleine vom Browser ab,
da hast du vom Server aus keinerlei Einfluss. Warum soll das
nötig sein?

Mmmm, wie machen das dann zB Banken oder sowas beim Login? Dort merkt er sich das auch nicht.

Ich habe auf einem Webserver eine Art Dokumentenverwaltung mit
Usern programmiert.

jeder User kann auf seine Dokumente zugreifen über Webseite
(PHP).

Wie kann ich jedoch verhindern, dass ein user ein Dokument
eines anderen lesen / laden kann, selbst wenn er die korrekte
URL kennt? (zb http://www.meinserver.de/docs/dokument1.xls)

Am liebsten wäre es mir, wenn man das Dokument nur über die
PHP-Seite öffnen kann und bei eienm Zugriff über die
Adresszeile im Browser das nicht geht!

die dokumente ausserhalb der webroot speichern, und mit passthru ueber php ausgeben.

Gibt es eine Möglichkeit, den Zugriff auf eine Webseite nur so
zu gestatten, dass es nur von speziellen Rechnern
funktioniert? (Das die Seite da nur aufgerufen werden kann)

mit php kannst du über $_SERVER auf die ip des client zugreifen.
es liesse sich auch ueber deny/access regeln in einer htaccess loesen.

Wie kann man einen Login so gesatlten, dass sich Username &
Passwort nicht speichern lassen?

erstmal gar nicht, das ist verhalten des browsers.
evtl. kannst du bei ie etwas entsprechendes über eine sicherheitsrichtlinie od. vbscript tun.

fuer alle anderen waere es einen versuch wert die felder nicht user und pass sondern foo und bar zu nennen, afaik werten die browser die feldnamen aus. allerdings wird das passwortfeld dann einen strich durch die rechnugn machen, nehme ich an. mit js koennte man das verhalten eines passwortfeldes an einem normalen textfeld nachempfinden - naja, muss man vielleicht nicht tun…

die loesungen zu 1 und 2 haben gg. der bereits genannten loesung via htaccess den vorteil, dass das management in der applikation bleibt, und du nicht an mehreren stellen daten pflegen musst.

Wie kann man einen Login so gesatlten, dass sich Username &
Passwort nicht speichern lassen? Bisher hab ich ein
Formularfeld, diese können aber gespeichert werden.

Garnicht. Was gespeichert wird hängt alleine vom Browser ab,
da hast du vom Server aus keinerlei Einfluss. Warum soll das
nötig sein?

Mmmm, wie machen das dann zB Banken oder sowas beim Login?
Dort merkt er sich das auch nicht.

sprichts du von den rechnern am kassenschalter - es waere mir neu, dass dort normale browser eingesetzt werden. dass eine alte os2-applikation oder eine selbstgebaute anwendung im bankenbereich passwoerter waere eher ungewoehnlich.

Nein, ich meine OnlineBanking zu hause. Nur beim Onlinebanking werden da die Formulardaten nicht gespeichert. Sonst schon.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wie kann ich jedoch verhindern, dass ein user ein Dokument
eines anderen lesen / laden kann, selbst wenn er die korrekte
URL kennt? (zb http://www.meinserver.de/docs/dokument1.xls)

Eat this:
http://de.php.net/features.http-auth

Stefan

Mmmm, wie machen das dann zB Banken oder sowas beim Login?
Dort merkt er sich das auch nicht.

Das liegt wahrscheinlich daran, dass dort sichere Verbindungen über https verwendet werden und die meisten Browser sich in dem Fall einfach nix merken.

Wie kann man einen Login so gesatlten, dass sich Username &
Passwort nicht speichern lassen? Bisher hab ich ein
Formularfeld, diese können aber gespeichert werden.

Garnicht. Was gespeichert wird hängt alleine vom Browser ab,
da hast du vom Server aus keinerlei Einfluss. Warum soll das
nötig sein?

Mmmm, wie machen das dann zB Banken oder sowas beim Login?
Dort merkt er sich das auch nicht.

sprichts du von den rechnern am kassenschalter

Nein, ich meine OnlineBanking zu hause. Nur beim Onlinebanking
werden da die Formulardaten nicht gespeichert. Sonst schon.

hmm kann ich nicht nachvollziehen, macht mozilla hier schon, bei mehreren (ok, 2) banken.