SORU
22 EYLÜL 2009, Salı


$_SERVER['HTTP_HOST'] PHP _SERVER vs $['SERVER_NAME'], am man sayfaları ben doğru anlamak mı?

Arama yaptım ve ayrıca $_SERVER PHP man sayfasını okuyun. Bu doğru basit bir bağlantı tanımlar benim site genelinde kullanılan için benim PHP komut dosyaları için kullanılacak olan ilişkin var mı?

$_SERVER['SERVER_NAME'] Temel web sunucusu yapılandırma dosyası (Apache2 benim durumumda) ve ayarlarına bağlı olarak değişir birkaç yönergeleri: (1) Test, (2) ServerName, (3) UseCanonicalName, vb.

$_SERVER['HTTP_HOST'] istemciden istek üzerine kuruludur.

Bu nedenle, benim komut mümkün olduğunca uyumlu hale getirmek için kullanmak için uygun $_SERVER['HTTP_HOST'] olacağını bana görünüyor. Bu varsayım doğru mu?

İzlemek yorum:

Bu makaleyi okuduktan ve bazı insanların söylediği belirterek, sonra biraz paranoyak oldum "$_SERVER vars herhangi güvenemezler":

Görünüşe göre bu tartışma eylem olmadan XSS saldırıları önlemek için kaçan özniteliği formunda özellikle kullanmamalısın neden $_SERVER['PHP_SELF'] ve ilgili.

Benim asıl sorum hakkında sonucum yukarıdaki" formlarda bile XSS saldırıları hakkında endişelenmenize gerek kalmadan bir site üzerinde tüm bağlantılar için $_SERVER['HTTP_HOST'] kullanmak için "güvenli olmasıdır

Eğer yanılıyorsam beni Düzelt lütfen.

CEVAP
22 EYLÜL 2009, Salı


Muhtemelen herkesin ilk düşünce. Ama biraz daha zor. Chris Shiflett’s article SERVER_NAME Versus HTTP_HOST bkz.

Gümüş kurşun yok gibi görünüyor. 13 ** her zaman SERVER_NAME doğru sunucu adını alacak.

Ya git ya da ev sahibi kontrol beyaz listesiyle adı:

$allowed_hosts = array('foo.example.com', 'bar.example.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
    header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
    exit;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • SoundHound

    SoundHound

    8 Mart 2006