Biorąc pod uwagę klienta (przeglądarki autora) może wysyłać Ci co chce, chciałbym powiedzieć, że nie ma sposobu, aby mieć pewność, której strona internetowa skrypt jest wywoływany z:
- Jak chcesz wiedzieć, adres URL strona osadzania widżet, a nie adres użytkownika,
$_SERVER['REMOTE_HOST']
nie pomoże
$_SERVER['HTTP_REFERER']
może wydawać się w porządku, ale w rzeczywistości nie jest:
- klient nie musi wysłać go (i nie robi” t zawsze rób)
- Jak to jest wysyłane przez klienta, może być sfałszowane/sfałszowane Dość łatwo
Tak, powiedziałbym, nie ma prawdziwego rozwiązania tego problemu, przynajmniej na stronie Twojego serwera (Jeśli się mylę, jestem zainteresowany, aby wiedzieć)
Ale może można coś zrobić po stronie klienta: pisząc to wszystko, pomyślałem o mapach google, a to system klucz API:
- Masz (unikalny) klucz API 4 twoja domena
- Po załadowaniu skryptów JS z google, twój klucz wysyła
- , jeśli klucz nie jest zarejestrowany dla domeny, w której próbujesz wyświetlić mapę, istnieje komunikat
alert
, który brzmi "Serwer interfejsu API serwisu Mapy Google odrzucił Twoją prośbę. Może to być spowodowane tym, że klucz API użyty w tej witrynie został zarejestrowany dla innej witryny internetowej. "
- ale mapa wydaje się być wyświetlane w każdym razie - przynajmniej na moim serwerze testowym
- ten
alert
jest naprawdę denerwujące dla użytkownika końcowego, i nie sądzę, by ktokolwiek chcą alert wyświetlany na swojej stronie, ponieważ są one za pomocą autoryzacji withot service ...
może trzeba spojrzeć na to w jaki sposób odbywa się na google maps :-)
$ _SERVER ['REMOTE_HOST'] nie działa, ponieważ zwraca dane klienta (internauty), a nie szczegóły strony internetowej, która zgłasza żądanie GET - właśnie tego potrzebuję. –