Autor Beitrag
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Do 14.05.09 22:36 
Hi!

Ich habe auf einem Webserver ein per htaccess passwortgeschütztes Verzeichnis. Von anderer Stelle wäre es jetzt schön, wenn ich die Zugangsdaten für diesen htaccess-Login übergeben könnte, sodass der Benutzer durch einen Klick auf einen entsprechenden Link sofort eingeloggt ist.

An sich müssten sich hier die Konzepte widersprechen, da das auf verschiedenen Ebenen abläuft (Authentifikation durch Webserver <-> Link als URL vom Browser). Aber vielleicht weiß ja jemand eine Lösung dafür.

Hintergrund:
Ich habe ein Forum, in dem spezielle Benutzerrechte vergeben sind. Einige Benutzer haben auf dem Server einen passwortsgeschützten Bereich, der alles mögliche beinhalten kann (daher kann ich dort keinen flexibleren Login via php o.ä. realisieren). Wenn der Benutzer sich bereits im Forum angemeldet hat und dann per Link in seinen Bereich wechseln möchte, würde ich gerne vermeiden, dass er sich dort nocheinmal anmelden muss.

Viele Grüße
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Do 14.05.09 23:27 
Schnelle und einfache Lösung: username:password@url/
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 15.05.09 00:07 
Das sollte auch so gehen:
us3.php.net/manual/e...atures.http-auth.php

user profile iconSirke hat folgendes geschrieben Zum zitierten Posting springen:
Schnelle und einfache Lösung: username:password@url/
Das Problem bei Benutzername und Passwort in der aufgerufenen Adresse ist, dass diese auf öffentlichen PCs im Verlauf steht statt nur in den Postdaten.
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Fr 15.05.09 10:09 
Damit ist meinen Wissens nur die Abfrage der Server Variablen möglich, um diese für einen Login über HTTP-Auth zu nutzen. Das Setzen von Server Variablen ist nicht möglich, sodass eine Umleitung nicht möglich ist.

Die Lösung für das ganze ist nur mit einem Link wie unten beschrieben möglich oder durch eine JavaScript Umleitung auf eine solche URL.

Das diese Daten in dem Verlauf auftauchen, ließe sich evtl über JavaScript vermeiden. In einem Chache o.ä. werden diese Daten auf jeden Fall gehalten, da diese bei jedem HTTP-Request mitgesendet werden.

Was umfasst denn das geschützte Verzeichnis? Alles was man mit .htaccess schützen kann, kann man auch per PHP darstellen und so schützen!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 15.05.09 10:12 
Wenn der spezielle User-Bereich unterhalb der Forenstruktur liegt, musst Du lediglich zentral abfangen. Alternativ kannst Du im Apache über einen dynamischen Login (Ja, man kann in HTAccess auf die DB zugreifen) anhand des Cookies vom Browser prüfen, ob der User dorthin darf (die Lösung würde mich auch interessieren ;-) - da könnt ich aber beim Ansatz helfen ;-)).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Fr 15.05.09 10:40 
Ich hätte noch einen interessanten Ansatz, welcher glaube ich jedoch einiges an Sicherheitslücken mit sich bringen kann!

Mittels .htaccess und mod_rewrite kann man auf Cookies zugreifen und bei falschen Cookies auf eine Fehlerseite/Loginseite umleiten, sodass man sich immernoch manuell einloggen kann. Ich glaube jedoch, dass es eben kein großes Problem werden kann, die Cookies und deren Abfrage dynamisch zu regeln, um Replay-Angriffe zu verhindern.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 15.05.09 11:29 
Das Problem an dem Ansatz ist, dass die Cookies dynamisch gestaltet sind und du daher einen Zugriff auf die DB brauchst. Das ist aber nur mit der von mir erwähnten Methode möglich.

Als kleiner Hint:
httpd.apache.org/doc...d/mod_authn_dbd.html

Und das so umbauen, dass der Session-Cookie als Username interpretiert wird.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
alias5000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Fr 15.05.09 15:17 
Hallo!
Danke für die schnellen Antworten.
user profile iconSirke hat folgendes geschrieben Zum zitierten Posting springen:
Schnelle und einfache Lösung: username:password@url/

Da hast du recht, das hätte ich sogar wissen müssen. Trotzdem besteht da für mich die Gefahr, dass über den Verlauf die Daten nach außen kommen.
JavaScript eventuell wäre es möglich, im Zielskript, auf das weitergeleitet wurde, per Javaskript das dann wieder zu löschen. Geschützt bin ich dann aber nicht vor Leuten, die NoSkript u.ä. dort anschalten.

Die Methode von BenBE klingt sehr interessant. Ich hoffe, ich finde die Zeit, mich damit auseinanderzusetzen. Die verlinkte Seite sieht ja auch schon ganz gut dazu aus.

Zitat:
="user profile iconSirke"]Was umfasst denn das geschützte Verzeichnis? Alles was man mit .htaccess schützen kann, kann man auch per PHP darstellen und so schützen!

Im Prinzip handelt es sich erstmal um beliebige Daten. Das sind Downloads in irgendwelchen Unterverzeichnissen zu diesem geschützten Bereich, das sind teilweise CMS-Installationen, statische HTML-Seiten, etc.
Alle haben aber gemeinsam, dass sie nicht von Auth.-Code betroffen sein dürfen, bis auf eine Übersichtsseite, auf die vom Forum aus verlinkt wird. Diese Übersichtsseite darf dementsprechend auch php nutzen.

Ich schau in den nächsten Tagen mal über die mod_authn_dbd-Variante (btw. Benny, ist das Modul auf deinem Server?).

Jetzt gehts erstmal wieder lernen

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 16.05.09 13:27 
Kleine Anmerkung zu meiner Methode vielleicht, ist mir gestern beim Studium der Apache-Doku aufgefallen: Damit das funktioniert, musst Du Apache-intern Unteranfragen proxien, sprich du brauchst in jedem Fall auch mod_rewrite und viel Geduld, bis das funktioniert ;-)

Bin auf jeden Fall auf die Lösung gespannt ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.