Skocz do zawartości

php refferer, jak?


heklind

Rekomendowane odpowiedzi

Używam poniższego skryptu do zabezpieczenia strony na refferera, czyli domenę.

$referer = $_SERVER['HTTP_REFERER'];
$referer_parse = parse_url($referer);

if($referer_parse['host'] == "tvnazywo.org" || $referer_parse['host'] == "www.domena.com") {
     // Page content will display
} else {
     header("Location: https://domena.com/404.html");
     exit();
}

Działa lecz, czy da się zabezpieczyć nie tyle na domenę co na konkretną podstronę? Próbowałem tak:

$referer = $_SERVER['HTTP_REFERER'];
$referer_parse = parse_url($referer);

if($referer_parse['host'] == "tvnazywo.org" || $referer_parse['host'] == "www.domena.com/strona/") {
     // Page content will display
} else {
     header("Location: https://domena.com/404.html");
     exit();
}

ale nie chce działać...

Odnośnik do komentarza
Udostępnij na innych stronach

A próbowałeś zrobić tak w .htaccess:

RewriteCond %{HTTP_REFERER} ^http://(www\.)?domena.com/strona.*$ [OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?domena.com/strona2.*$ [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(www\.)?domena.com/jakas_inna_podstrona.*$ [NC]
RewriteRule ^404.html$ [F,L]

ewentualnie:

SetEnvIfNoCase Referer "^ https:// (www.)? Site refferer.com" spam_ref = 1
SetEnvIfNoCase Referer "^ https:// (www.)? Another-site.com" spam_ref = 1

<FilesMatch "(.*)">
Zamów Allow, Deny
Allow from all
Deny from env = spam_ref

Autorski, moderowany i darmowy Katalog Stron BestKatalog

Odnośnik do komentarza
Udostępnij na innych stronach

Tak przy okazji: opieranie się o referera jest niebezpieczne, bo to nagłówek wysyłany przez klienta. Klient może wysłać cokolwiek, przeglądarka może w ogóle nie wysłać referera...

Nie wiem po co to robisz, ale radzę znaleźć inny sposób.

Odnośnik do komentarza
Udostępnij na innych stronach

Fakt, rzeczywiście marne to zabezpieczenie... Zna ktoś może jakiś lepszy sposób na to żeby się zabezpieczyć przed niepożądanymi userami?

Chodzi o to, że dostęp do tych plików mają mieć tylko osoby zalogowane na mojej stronie. Tylko one mają dostęp do stron, na których umieszczone są w ramkach treści, które powinny być zabezpieczone.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Możliwość zastosowania sesji eliminuje problem w 100%. Gdy takiej możliwości nie ma to można np. pobierać treść dynamicznie (ajax) z jakimś niestandardowym nagłówkiem, lub gdy strona musi działać bez Javascriptu pozostaje referer. W drugim porównaniu powinno być zamiast host path i /strona/ zamiast www_domena_com/strona + do tego bym dodał przypadek kiedy Twoi użytkownicy nie przekazują referera czyli dodatkowe porównanie czy referer jest pusty.

Ujednolicone teksty aktów prawnych https://podstawa-prawna.info

Odnośnik do komentarza
Udostępnij na innych stronach

Można równierz zmieniać rozszerzenia plików na np. pdf.ukryj, zabronić w .htaccess dostep do takich plikow i otwierać je w przez skrypt w php z odpowiednim naglowkiem header dla typu pliku. Jeśli nie ma możliwośći korzystania z .htaccess można dodawać rozszerzenie do którego ustawienia serwera domyślnie nie zezwalają na dostęp przez przegladarke, skrypt php bedzie mial do nich dostep, sprawdzi sesje, zapis w bazie danych lub cookies ustawi dopiero odpowiedni header, nie można wtedy używać przechowywania - Cache-Control powinien być ustawiony na 0 w wysyłanym nagłówku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Jak już zastosujesz sesje - jakiś system logowania / haseł to pamiętaj że nadal słabym ogniwem mogą być łatwe hasła, do odgadnięcia. Na temat bezpieczeństwa logowania można trochę więcej poczytać w internecie, np wyszukaj takie coś w google jak poniżej.

Chciałbym tu poruszyć temat bezpiecznego logowania do sajtu opartego na PHP.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności