X-Powered-By Kaldırma


137
  1. PHP'de X-Powered-By üstbilgisini nasıl kaldırabilirim? Bir Apache Server'dayım ve php 5.21 kullanıyorum. 5.21 tarafından desteklenmediği için php header_remove işlevini kullanamıyorum. Header unset X-Powered-By kullandım, yerel makinemde çalıştı, ancak üretim sunucumda çalışmadı.

  2. Php ver <5.3 için header_remove () işlevini desteklemiyorsa, bir alternatif var mı?


Üretimde PHP Sürümü: PHP / 5.2.13 Yerelde PHP Sürümü: PHP / 5.2.11 Üretimde Apache sürümü: Apache / 2.2.15 (Unix) Yerelde Apache sürümü: Apache 2.0.63 (Mac'te MAMP kullanarak)
Castor

Ayrıca paskalya yumurtalarına dikkat edin .
Pacerier

Yanıtlar:


236

Ben PHP.iniexpose_php ayar tarafından kontrol düşünüyorum :

expose_php = off

PHP'nin sunucuda yüklü olduğu gerçeğini gösterip açamayacağına karar verir (örn. İmzasını Web sunucusu başlığına ekleyerek). Herhangi bir şekilde bir güvenlik tehdidi değildir, ancak sunucunuzda PHP kullanıp kullanmadığınızı belirlemeyi mümkün kılar.

Doğrudan bir güvenlik riski yoktur, ancak David C'nin belirttiği gibi, PHP'nin eski (ve muhtemelen savunmasız) bir sürümünü ortaya çıkarmak, insanların buna denemesi ve saldırması için bir davetiye olabilir.


30
'Hiçbir şekilde güvenlik tehdidi yoktur'. Barındırılan bir sunucuda çalışan php'nin eski sürümleri için bu yanlış olabilir. Bilgisayar korsanlarının geçmiş sürümlerde iyi belgelenmiş 'deliklerden' yararlanabileceğini duydum. Bu gerçeği gizlemek daha iyidir ....
David

14
"Tamamen güncel" olmak yanlış bir pozitif imo. Bilgileri tamamen devre dışı bırakmak daha iyidir. Dün yayınlanan bir sürümün zaten açık bir tehdidi olabilir ve yükseltme döngünüzün ne kadar agresif olduğuna bağlı olarak bir süre için olabilir. Onları hep birlikte tahmin etmek daha iyi. Nginx sürümleri de dahil olmak üzere olabildiğince saklıyorum.
Mike Purcell

1
@David, Demek istediğin, zaten karşılaştığın güvenlik tehdidine katkıda bulunmuyor.
Pacerier

7
X-Powered-By üstbilgisi için kötü bir değeri bilerek bildirebilirsiniz. Örneğin, PHP çalıştırıyorsanız, saldırganların web sunucunuzdaki yazılım yapılandırmasını tanımlamasını yavaşlatmanın bir yolu olarak bir X-Powered-By: ASP.NET başlığı gönderebilirsiniz. Taramalarını yavaşlatmak için saldırganlarınızı vahşi kaz kovalamacasına gönderin.
Chaoix

3
@ Pacer, elbette güvenlik tehdidine katkıda bulunuyor. Hacker kolay av arayan 1000'lerin sitelerini tarar ... eski bir sürümde bu başlığa sahip olmak, sunucunun daha önce yok sayıldığı zaman hedef alındığı anlamına gelir. Güvenlik tehdidine doğrudan katkıda bulunur. Güncel olsa bile, henüz uygulanmayan bir güncelleme olduğu kısa bir sürede tehdide katkıda bulunabilir.
Nigel


50

PHP'nin konuşkanlığını susturmak için expose_php yönergesini devre dışı bırakamazsanız ( php.ini dosyasına erişim gerektirir ), başlık alanını kaldırmak için Apache Headeryönergesini kullanabilirsiniz:

Header unset X-Powered-By

3
Bu benim üretim sunucumda çalışmıyor. Yerel makinemde çalışıyor. Bunun neden olduğuna dair herhangi bir fikir var mı?
Castor

@Castor Yerel olarak ve üretim makinesinde hangi sunucu sürümlerini kullanıyorsunuz? PHP kurulumunda herhangi bir fark var mı?
Pekka

Üretimde PHP Sürümü: PHP / 5.2.13 Yerelde PHP Sürümü: PHP / 5.2.11 Üretimde Apache sürümü: Apache / 2.2.15 (Unix) Yerelde Apache sürümü: Apache 2.0.63 (Mac'te MAMP kullanarak)
Castor

1
@Castor: mod_headers her iki sunucuda da mevcut mu? Ve FileInfo'yu geçersiz kılma izniniz var (bkz. Httpd.apache.org/docs/2.2/mod/core.html#allowoverride )?
Gumbo

@ Gumbo Evet, mod_headers her iki sunucuda da mevcuttur. Ve evet, FileInfo'yu geçersiz kılabilirim.
Castor

24
if (function_exists('header_remove')) {
    header_remove('X-Powered-By'); // PHP 5.3+
} else {
    @ini_set('expose_php', 'off');
}

14

Php.ini dosyasına erişiminiz varsa, ayarlayın expose_php = Off.


3
Peki, bu çalışma php kodundan aldım. başlık ("X-Powered-By:"); X-Powered-By üstbilgisini kaldırılan hiçbir şeye ayarlamak. Zaman ayırdığınız ve önerileriniz için teşekkürler.
Castor


4

Üstbilgileri göndermeden önce aşağıdaki gibi bir header () çağrısı eklemeyi deneyin:

header('X-Powered-By: Our company\'s development team');

php.ini dosyasındaki expose_php ayarından bağımsız olarak


0

Bu çözüm benim için çalıştı :)

Lütfen komut dosyasına aşağıdaki satırı ekleyin ve kontrol edin.

Ngnix / Apache vb. Seviye ayarları gerekli olmayabilir.

header("Server:");
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.