PHP Host Header Injection Nasıl Önlenir?

PHP Host Header Injection Nasıl Önlenir? Host Header Injection nedir? PHP'de ana bilgisayar üstbilgisi enjeksiyonu nasıl önlenir, PHP'de ana bilgisaya


Bir web geliştiricisi olarak, web uygulamanızı kötü niyetli saldırılardan koruyabilmeniz için ana bilgisayar üstbilgisi enjeksiyonu (Host Header Injection) hakkında bilgi sahibi olmalısınız.

Bu eğitimde, ana bilgisayar üstbilgisi enjeksiyonunun ne olduğunu ve web uygulamalarının ana bilgisayar üstbilgisi enjeksiyonundan nasıl engelleneceğini göreceğiz.

Ana Bilgisayar Başlığı veya HTTP Ana Bilgisayar Başlığı nedir?

Ana bilgisayar başlığı, web alanını tanımlamak için kullanılabilecek bir bilgi parçasıdır. Örneğin, URL için ana bilgisayar başlığı:
https://www.oxcakmak.com, www.oxcakmak.com'dur.

Host başlığı, sunucunun alan adını belirtir.

Host Header Injection nedir?

Ana Bilgisayar Üstbilgisi Enjeksiyonu, Köprü Metni Aktarım Protokolü (HTTP) üstbilgileri olduğunda ortaya çıkan bir tür web uygulaması güvenlik açığıdır.

Genellikle, aynı IP Adresinde birkaç web uygulamasını barındırmak için aynı web sunucusunu kullanırız ve ana bilgisayar başlığının var olma nedeni budur.

Ana bilgisayar başlığı, hangi web uygulamasının gelen bir HTTP isteğini işlemesi gerektiğini belirtir.

Saldırgan, Ana Bilgisayar Başlığını değiştirebilir ve web uygulamasının beklenmedik şekillerde davranmasına neden olabilir.

Paylaşımlı barındırma ortamlarında, bir saldırganın tarayıcısını aynı sunucudaki başka bir sanal ana bilgisayardan kaynak almaya zorlamak için bu saldırıyı kullanmak mümkündür.

PHP'de Host Header Injection Nasıl Engellenir

Aşağıdaki kodu kopyalayın ve web uygulamanızın ortak dosyasına (config.php) yapıştırın

<?php
$allowedHost = array('www.oxcakmak.com', 'www.demo.oxcakmak.com');

if(!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowedHost)) {
    header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request');
    exit;
}
?>