Dinamik PHP ile alt etki alanlarını belirlemek için en iyi yolu nedir?

4 Cevap php

Ben *. Mydomain.com bir joker DNS yapılandırılmış ve hepsi düzgün çalışıyor. Benim soru müşteri subdomain isteklerini belirleme güvenmek gerektiğini bu hangisi?

  1. $ _SERVER ["HTTP_HOST"]
  2. $ _SERVER ["SERVER_NAME"]
  3. $ _SERVER ["SCRIPT_URI"]

Onlar bütün istediğim subdomain kısmını içeren görünüyor ama Chris tarafından bu makaleyi okuduktan sonra: http://shiflett.org/blog/2006/mar/server-name-versus-http-host, ben denizde kaybolan ve bunu yapmak için güvenli bir yol olarak orada görünüyor muyum?

Güvenli bir şekilde bu görevi yerine getirmeye üzerinde herhangi bir fikir? Hangi yaklaşım tercih edersiniz?

Güncelleme: Üzgünüm, bu yazı geliyordu: http://shiflett.org/blog/2006/mar/server-name-versus-http-host

4 Cevap

Sen en kullanımı HTTP_HOST ancak herhangi kullanabilirsiniz.

Eğer alt etki alanları için bir joker izin beri burada 'güvenlik' konusunda endişelenmenize gerek yok. Eğer bir 'tehdit' subdomain girdikten ve sunucuya bir istek göndererek bir kullanıcıyı durdurmak mümkün olmayacaktır.

Bazı alt alanları engellemek istiyorsanız, o zaman çeşitli seçenekler var ama farklı bir soruydu.

HTTP_HOST HOST başlığındaki doğrudan gelir. Apache herhangi bir şekilde o kadar temiz değil. Bile olmayan joker kurulumları için, sizin config ilk virtualhost yapılandırılmış vhostları herhangi uymuyor HOST başlık için bir istek alacaksınız, bu yüzden onunla dikkatli olmak zorunda. Herhangi bir diğer kullanıcı verileri gibi davranın. Kullanmadan önce uygun bir filtre.

Ben size geçerli sayfa url almak öneririm, daha sonra kontrol etmek için normal bir ifade kullanabilirsiniz. Işler, vb www2, www bağlantı görmezden emin olun

$subdomain = explode('.', $_SERVER['HTTP_HOST'], -2);

Her zaman bir dizi döndürür, ve hiçbir alt etki varsa boş olabilir. Ayrıca emin bu bir dizi değeri olarak www dönmek olabilir ve zaten kök etki alanına bağlantı olacağını fark yapmak gerekir.