Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3179[/thread]

SSL-check nach .htaccess Authentisierung: doppelte Anmeldung nötig...

Leser: 1


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
macMeck
 2006-02-05 13:14
#29808 #29808
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich hab grad mal in mein Skript eine Überprüfung eingebaut, ob sich der Benutzer auch tatsächlich über https verbunden hat. Falls nicht, wird er auf die sichere Verbindung weitergeleitet. Das sieht im Skript ungefähr so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
        # ****************************************
# ********** auf SSL überprüfen **********
# ****************************************
if (1 && ($config->{'system.checkSSL'} ne "0")) {
unless (grep{/HTTPS/} (keys %ENV)) {
print CGI::redirect('https://'.$ENV{HTTP_HOST}.'/');
exit();
}
}

Das Problem, das ich damit habe ist, dass sich das Skript in einem mit .htaccess geschützten Verzeichnis befindet. Der Benutzer greift jetzt also per http auf das Skript zu, muss sich authentisieren und wird dann umgeleitet. Dummerweise muss er jetzt aber für die https-Verbindung seine Benutzerdaten nochmal eingeben, weil das irgendwie nicht als gleiche Authentisierungsanfrage erkannt wird.

Wie könnte man das denn umgehen? Vielleicht ist der Ansatz ja auch falsch und man müsste es ganz anders lösen...

macMeck
It all works, as long as it's documented!
GwenDragon
 2006-02-05 14:07
#29809 #29809
User since
2005-01-17
14555 Artikel
Admin1
[Homepage]
user image
Quote
Dummerweise muss er jetzt aber für die https-Verbindung seine Benutzerdaten nochmal eingeben, weil das irgendwie nicht als gleiche Authentisierungsanfrage erkannt wird.
Das ist auch nicht die gleiche Verbindung. Lögisch, dass der Apache nochmals fragt.

Wieso läßt du nicht gleich mit mod_rewrite ein redirect auf https:/// laufen bei bestimmten URLs?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

esskar
 2006-02-05 14:50
#29810 #29810
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder sperr http komplett ... also immer https
esskar
 2006-02-05 14:51
#29811 #29811
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=GwenDragon,05.02.2006, 13:07]Das ist auch nicht die gleiche Verbindung. Lögisch, dass der Apache nochmals fragt.[/quote]
er fragt glaube ich immer. der browser merkt jedoch, dass die url eine andere ist und zeigt nochmal die box an.
macMeck
 2006-02-05 14:55
#29812 #29812
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
[quote=GwenDragon,05.02.2006, 13:07]
Quote
Dummerweise muss er jetzt aber für die https-Verbindung seine Benutzerdaten nochmal eingeben, weil das irgendwie nicht als gleiche Authentisierungsanfrage erkannt wird.
Das ist auch nicht die gleiche Verbindung. Lögisch, dass der Apache nochmals fragt.

Wieso läßt du nicht gleich mit mod_rewrite ein redirect auf https:/// laufen bei bestimmten URLs?[/quote]
Weil ich a.) dachte, dass es beim Provider nicht unterstützt wird und b.) mich damit nicht wirklich auskenne... Hab es jetzt aber mal kurz aufgesetzt. In meiner .htaccess stehen jetzt folgende Rewrite-Anweisungen drin:
Code: (dl )
1
2
3
RewriteEngine On
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule ^.*$ https://%{HTTP_HOST}/ [NC,L]


Aber auch wenn ich die vor die Anweisungen zum Login stelle, fragt er trotzdem noch zweimal danach...
It all works, as long as it's documented!
GwenDragon
 2006-02-05 15:58
#29813 #29813
User since
2005-01-17
14555 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
RewriteEngine On
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

macMeck
 2006-02-05 16:38
#29814 #29814
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
irgendwie auch nicht... Ich muss immernoch zweimal den Benutzernamen und das Passwort eingeben.
It all works, as long as it's documented!
GwenDragon
 2006-02-05 17:50
#29815 #29815
User since
2005-01-17
14555 Artikel
Admin1
[Homepage]
user image
Du rufst also folgendermaßen auf:
http://www.meinserver.de/cgi-bin/meinscript.pl
Dann poppt das Authentifizierungsfenster auf?
Oder kommt erst der Redirect auf https?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

macMeck
 2006-02-05 18:04
#29816 #29816
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
Es ist ja völlig egal, was ich aufrufe (Skript, HTML-Seite, Grafik)... Das Verhalten ist immer:
- http://... Eingabe
- Popupfenster kommt für Eingabe der Credentials
- Umleitung auf https://... und Anzeige der Zertifikat-Infos
- Popupfenster kommt für Eingabe der Credentials zum zweiten Mal
- Anzeige des Inhaltes meines Aufrufes

Es sieht also so aus, als würde trotz des Rewritings der ursprüngliche Request erstmal aufgerufen werden... :(
It all works, as long as it's documented!
macMeck
 2006-02-05 18:29
#29817 #29817
User since
2003-08-04
162 Artikel
BenutzerIn
[default_avatar]
Tja, dumm das. Ich glaub' ich hab gefunden, was das Problem ist. Die Apache-Doku http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html sagt dazu:
Quote
First you have to understand that when Apache processes a HTTP request it does this in phases. A hook for each of these phases is provided by the Apache API. Mod_rewrite uses two of these hooks: the URL-to-filename translation hook which is used after the HTTP request has been read but before any authorization starts and the Fixup hook which is triggered after the authorization phases and after the per-directory config files (.htaccess) have been read, but before the content handler is activated.

Das heißt ja wohl, dass der Request erstmal so ausgeführt wird und das Rewriting erst nach der Authorization statt findet. Zumindest wenn man es in der .htaccess macht. Richtig?

Noch ne Idee?
It all works, as long as it's documented!
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2006-02-05 13:14.