Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: HTTPS a nagłówek REFERER
Forum PHP.pl > Forum > PHP
lucaa44
Witam
Mam problem z naglowkiem REFERER wysylanym przez przegladarkę.

Podczas przechodzenia między stronami których adres zaczyna się na HTTP czyli http->http nie ma żadnych problemów naglowek jest normalnie przekazywany odczytuje go ze zmiennej PHP np $_SERVER[....] .(dlatego do tej pory z powodzeniem go uzywalem;)

Problem pojawia się kiedy następuje przejście typu https->http (możliwe że https->https też, nie sprawdzałem). Naglowek nie jest przesyłany, zmienna $_SERVER[HTTP_REFERER] jest pusta, tak jakby cos blokowalo przeslanie naglowka z przegladarki do serwera, podczas użycia protokołu HTTPS.

O co może chodzić? Dlaczego naglowek nie jest przesyłany jak w przypadku zwyklego HTTP?
Dodam jeszcze tylko ze sytuacja dotyczy zdalnego serwera, hosting na lh.pl(na localhost nie udalo mi sie uruchomic ssl), przegladarki opera 9.64 i ff 3.6.
Czy moze to byc wina oprogramowania po stronie serwera np firewalla czy antywirusa lub innych ustawien ktore blokuja wysylanie naglowka REFERER jako np dodatkowe zabezpieczenie HTTPS?

Pozdrawiam
tehaha
w tym obszarze nie mam doświadczenia, ale z tego co wiem to https szyfruje przesyłane dane, więc możliwe że niektóre nagłówki, które potencjalnie mogą zawierać poufne dane też są szyfrowane lub całkowicie blokowane
erix
Cytat
Czy moze to byc wina oprogramowania po stronie serwera np firewalla czy antywirusa lub innych ustawien ktore blokuja wysylanie naglowka REFERER jako np dodatkowe zabezpieczenie HTTPS?

Być może. Nie pamiętam, czy Suhosin patch czegoś takiego nie dodawał.

Generalnie nie rozumiem, po co Ci referer...
lucaa44
Sprawdzilem w phpinfo....jest Suhosin.. wersja 0.9.7...niestety - jezeli to rzeczywiscie to..

po co mi referer...zabezpieczenia do mojej aplikacji stoja na referer...nie mam za bardzo czasu zeby to zmieniac...jak nie bedzie innego wyjscia to masakra

ponoc wordpress wykorzystuje to samo: http://codex.wordpress.org/Enable_Sending_Referrers


nie da sie w jakis sposob zmusic przegladarki zeby wyslala ten naglowek?

jakas godzine temu przyszedl mi do glowy pomysl z header():

Kod
header("Referer: $URL/$PHP_SELF")


np w taki sposob....chociaz bardzo prawdopodobne ze jezeli serwer ma go zablokowac to i tak to zrobi
erix
Mam być szczery?

Cytat
nie da sie w jakis sposob zmusic przegladarki zeby wyslala ten naglowek?

Jeszcze czego?!

Cytat
po co mi referer...zabezpieczenia do mojej aplikacji stoja na referer...

=


Zainteresuj się kluczami sesji, a nie czymś, co Ci się wydaje, że jest zabezpieczeniem...
lucaa44
dzieki za szczerosc haha.gif i za pomoc...

nie mam sily tlumaczyc (i chyba nie ma sensu) na czym dokladnie oparlem zabezpieczenia..

jezeli odpowiedz na tego typu posty stanowi dla kolegi erix PROBLEM, nie ma potrzeby odpowiadac...

poza tym teraz i tak pozostaje mi czekac na odpowiedz admina serwera ktory testuje, bo wszystko wskazuje na to ze to problem serwera, ewent prosic go o zmiane konfiguracji

Pozdrawiam i proponuje odrobine relanium....
tehaha
erix powiedział Ci wprost jak sprawa wygląda i to nie po to żeby być złośliwym tylko wręcz przeciwnie żebyś stworzył aplikację która naprawdę, a nie tylko pozornie jest bezpieczna, więc nie bądź ignorancki
lucaa44
a moze nie ma potrzeby wystepowac w roli czyjegos adwokata bo to sprawa miedzy jedna a druga strona.....gra nie warta swieczki, dyskusja na temat referera ktory stanowi jedynie czesc zabezpieczen.. poza tym nie o to chodzilo w tym poscie, ale o to dlaczego nie wysyla, ref jest mi potrzebny i tyle koniec kropka...Tobie dzieki za sugestie apropo mozliwej przyczyny w pierwszym poscie...Pozdrawiam
erix
Cytat
nie mam sily tlumaczyc (i chyba nie ma sensu) na czym dokladnie oparlem zabezpieczenia..

Ale nazywanie referera zabezpieczeniem, to jak nazywanie trójkołowego rowerka chopperem...

Cytat
, ref jest mi potrzebny i tyle koniec kropka...

Podstawienie dowolnego ciągu w REFERERze jest sprawą wręcz banalną. Poza tym:

  • Ten, kto nie będzie chciał atakować, ten sobie nie będzie zawracał tym uwagi,
  • wiele pakietów bezpieczeństwa blokuje przesyłanie tego nagłówka
  • uwierz, że jeśli ktoś chce dokonać ataku, to referer podstawia na pierwszym miejscu


Tracisz tylko czas.

Cytat
jezeli odpowiedz na tego typu posty stanowi dla kolegi erix PROBLEM, nie ma potrzeby odpowiadac...

Usiłuję Ci wybić ten pomysł z głowy. Z goto też korzystasz?
Pilsener
Dodam jeszcze, że referer często też jest wykorzystywany jako jedna z dwóch podstawowych metod zrobienia przycisku wstecz "dla ubogich" (druga to oczywiście onclick history back w JS).

Referer może być traktowany jedynie jako pomocnicze zabezpieczenie, aplikacja ma działać tak: jeśli jest referer, to ok - sprawdzamy go, jeśli nie ma - to nic się nie dzieje.

A wiesz dlaczego admini blokują referer? Bo jakiekolwiek wykorzystanie tegoż referera w aplikacji często jest luką bezpieczeństwa, a co dopiero:
Cytat
zabezpieczenia do mojej aplikacji stoja na referer
- to nic innego jak luka bezpieczeństwa, nic dziwnego, że takie pomysły są dławione w zarodku smile.gif
zegarek84
już prędzej zapamiętywać adres w sesji jeśli na konkretnej stronie ma się być po określonej (ale to też nie zabezpieczenie - jednak lepsze)... co z tego, że sprawdzisz referera jak ktoś Ci w innej karcie w między czasie wykona kilka innych operacji pośrednich po czym na przygotowanej karcie wejdzie tam gdzie chce?? (w sesji prędzej te adresy "połapiesz" i będą aktualne)... referera bardzo łatwo podstawić na inny winksmiley.jpg... i przykład z pewnej gierki gdzie niby sprawdzają liczbę jednostek jaką się wysyła a potem trzeba potwierdzić, liczba jednostek jest sprawdzana przy pierwszym wyslaniu przed potwierdzeniem (i też po) ale co z tego, jak nie jest sprawdzane liczba jednostek jaka byla zadeklarowana za pierwszym razem a wyslana faktycznie?? (sprawdzają tylko czy masz te jednostki) -> akurat tu jest spora luka zwłaszcza jeśli chodzi o boty lub pół automaty gdzie gra się na milisekundy ;D (i jakoś jednostek nie mogą ustrzelić w np. 50 a jeszcze przy okazji puszcza się kontre nie do zatrzymania na najsilniejszego tak, żeby to on nie dał rady cofnąć ^^)

wszystkie zależności przechowuj w sesji... w sesji jak tak chcesz zabezpieczyć zapisuj IP, zapisuj nagłówki przeglądarki, potem jeśli potrzebne zależności odwiedzonych stron to zapisuj ale aktualny adres (lepsze od referera) i wiele innych zależności możesz sprawdzić... ustawić limity czasowe itp..., czas życia sesji (wogóle możesz w sesji se zabezpieczenia wyśrubować a jak ktoś chce wejść bez identyfikatora to nie ma sesji - więc nie ma problemu...)

dane sesji masz na serwerze, zaś referera otrzymujesz z zewnątrz od uzyszkodnika winksmiley.jpg (takim danym nigdy się nie ufa ;D )... danych w ciasteczku też nie przechowuj - można je podmienić - chyba, że sam identyfikator sesji czy to w ciasteczku, czy linku czy gdzieś w ukrytym polu formularza (a potem sprawdzisz na ip, nagłówkach przeglądarki i czym chcesz czy ten ktoś nie chciał się podszyć lub nie wchodzi po kilku dniach nieobecności winksmiley.jpg
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.