PHP - GET isteğine Kaynak (hostname)

3 Cevap

Ben insanların kendi sitesinde embed Javascript Widget var.

Ben bir karma çekmek için basit bir çapraz etki get isteği kullanmak istiyorum.

Ancak Ben sadece bir dizide sakladığınız etki bir dizi bu çapraz etki isteği izin benim PHP komut dosyası gerekir.

Ben olsun isteğin kaynağını (hostname) öğrenmek için (değil {[) 0 (]} ya da iptables) benim PHP komut ne yapabilirim?

3 Cevap

Sen $_SERVER değişkeni kullanabilirsiniz. Özel olarak $_SERVER['REMOTE_HOST'] but uyarı için aşağıya bakınız:

However, your web server must be configured to create this variable. For example in Apache you'll need HostnameLookups On inside httpd.conf for it to exist. See also gethostbyaddr().

Istekleri JavaScript geliyorsanız, size HTTP yönlendirme başlığı ($ _SERVER ['HTTP_REFERER']) kontrol edebilir. Ancak, isteğe bağlı - biraz yakınlık veya güvenlik programları HTTP istekleri dışında yönlendirme başlığını şerit.

: Istemci (kullanıcının tarayıcı) düşünüldüğünde istediğini, ben script denir hangi web sitesi emin olmak için bir yol olduğunu söyleyebilirim size gönderebilir

  • Eğer widget ve kullanıcı değil adresini gömme web URL'sini bilmek istiyorum, $_SERVER['REMOTE_HOST'] yardımcı olmaz
  • $_SERVER['HTTP_REFERER'] could seem OK, but actually is not :
    • İstemci göndermek zorunda değildir (ve her zaman yapmaz)
    • Bu istemci tarafından gönderildiği gibi, bu sahte olabilir / Oldukça taklidinin kolayca

Yani, ben bu soruna gerçek bir çözüm olduğunu söylemek, en azından sunucu tarafında (If I'm wrong, I'm interested to know !) ediyorum

Ama belki müşterinin tarafında bir şey yapabiliriz: Bütün bu yazarken, ben google maps düşündüm, ve bu API Key sistemi bulunuyor:

  • Bir (benzersiz) API tuşuna dört etki alanınız var
  • Google, sizin Gönderirken bu tuşa JS komut dosyaları yüklediğinizde
  • if the key is not registered for the domain on which you are trying to display the map, there is an alert message, saying "The Google Maps API server rejected your request. This could be because the API key used on this site was registered for a different web site."
    • ancak harita zaten görüntülenir görünüyor - en azından benim test sunucusu üzerinde
  • Bu alert really anoying for the end-user, ve ben kimse onlar servis withot yetkisini kullanarak çünkü bir uyarı kendi sitesinde görüntülenmesini istediğiniz sanmıyorum ...

Belki :-) bu google maps için yapılır nasıl bir göz atabilirsiniz