Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wymusic SSL?
Forum PHP.pl > Forum > PHP
Vomit
W jaki sposob moge wymusic, aby uzytkownik laczyl sie poprzez SSL? Ewentualnie automatycznie laczyc uzytkownika przez SSL, tak jak jest to robione w bankach itp.

Prosze o podpowiedz, szukalem na forum, ale nie znalazlem.
TomASS
Nie znalazłem ?
Vomit
Chyba sie nie zrozumielismy. Zainstalowac, to ja mam zainstalowane i dziala bez zarzutu. Chodzi o wymuszenie i fakt tego nie znalazlem.
ave
przekierowac na https:// ?
Radarek
Sprawdzasz wartosc $_SERVER['SERVER_PORT']. Jesli jest to standardowy port 80 tzn ze polaczenie jest po zwyklym http wiec robisz przekierowanie tej samej strony, ale z protokolem https, zamiast http. Jesli wartosc to 443 (standardowy port dla SSL) to wszystko jest w porzadku.

Tak na marginesie tylko dodam, ze w profesjonalnych serwisach, gdzie bezpieczenstwo jest sprawa pierwszorzedna (np. obsluga konta w banku przez www, przelewy etc) takie rozwiazanie nie powinno miec miejsca, gdyz klient ma mozliwosc dokonania polaczenia nieszyfrowanego (a zatem moze wyslac poufne dane bez szyfrowania, np sprobowac zalogowac sie). W takich przypadkach powinno sie, calkowicie wylaczyc nieszyfrowane polaczenia.
Vomit
No wlasnie wlasnie. Chce na uzytkowniku wymuszac to polaczenie, aby nie mial mozliwosci logowania sie poprzez http, tylko musial przez https. To z portami to dobre naprowadzeie, ale da sie to chyba jakos inaczej zalatwic?
ave
a niemozesz w apachu zrobic osobnych katalogow dla polaczenie na porcie 80 i 433?
port 80 to /www/http/
port 443 /www/https/
i wtedy sam decydujesz co gdzie bedzie..
popo
proponuje redirect zrobic (mod_rewrite) jesli jest zainstalowany i dziala to
Kod

RewriteEngine ON
RewriteCond %{SERVER_PORT} 433 [NC]
RewriteRule ^(.*)$ https://two.ja.done.na/$1 [R=301,L]

umieszczamy toto w pliku htacces w katalogu glownym serwisu (bedzie dzialalo dla tego i wszystkich podkatalogow chyba ze jest inaczej skonfigurowane)

jesli nic nie pokrecilem to powinno automatem przekierowac przegladarke na strone szyfrowana zanim w ogole cos sie w niej wyswietli
R=301 powoduje ze przegladarka jesli ma adres stronki zapamietany to sobie zapamieta nowy poprawny
Vomit
Dopiero teraz mialem czas aby przetestowac wasze propozycje. Niestety twoje rozwiazwanie popo nie dziala jak powinno. Nic sie nie dzieje.
popo
hmm po pierwsze czy masz tam zainstalowany modul mod_rewrite i czy masz uprawnienia zeby go uzywac (np jeden z serwerow na ktorych sie bawilem owszem mial mod rewrite ale szary user nie mogl go wlaczyc)

jesli masz dostep do konfiguracji apacza to sprawdz

1) czy w httpd.conf masz
LoadModule rewrite_module modules/mod_rewrite.so
nie moze ona byc zakomentowana

teraz umieszczasz w pliku .htaccess
taka oto komende (na razie tylko ta)
Kod
RewriteEngine On

i tutaj mala uwaga a wlasciwie kilka
apacz musi byc nowszy niz Apache 1.3 lub dla serii 2 Apache 2.0+
rewrita mozna uzywac globalnie z httpd.conf lub wlasnie .htaccess, ale zeby dzialalo z htaccess musisz miec jeszcze ustawione dwie opcje a mianowicie AllowOverride FileInfo i opcje FollowSymLinks dla katalogu z htaccess lub ktoregos z jego katalogow nadrzednych, bez tego dostaniesz conajwyzej blad 500 przy probie dostepu do katalogu z powyzszym wpisem w htaccess

a teraz poprawione regolki ktore powinny sie znalezc zaraz za ta powyzej jak juz jestes pewien ze modrewrite dziala (zapomnialem zanegowac numeru portu ==; no ale tak to jest jak sie cos pisze po 2 ezsennych nocach)

Kod
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]


mam nadzieje ze ci to info wystarczy i sorki za niedomowienie w poprzednim poscie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.