Bir Drupal 8 web sitesi çalıştırıyorum ve herhangi bir sayfaya göz attığımda, aşağıdaki hata mesajını içeren düz beyaz bir sayfa alıyorum.
Sağlanan ana bilgisayar adı bu sunucu için geçerli değil.
Ne anlama geliyor? Bunu nasıl düzeltebilirim?
Bir Drupal 8 web sitesi çalıştırıyorum ve herhangi bir sayfaya göz attığımda, aşağıdaki hata mesajını içeren düz beyaz bir sayfa alıyorum.
Sağlanan ana bilgisayar adı bu sunucu için geçerli değil.
Ne anlama geliyor? Bunu nasıl düzeltebilirim?
Yanıtlar:
Bu hata mesajı, HTTP Host başlık saldırılarına karşı korumak için Drupal 8'e eklenen bir özellikten geliyor . Bu özellik ayrıca düzeltme eki için oluşturulan değişiklik kaydında da açıklanmaktadır .
Temel olarak, HTTP Host başlığını zorlu amaçlar için kandırmak ve Drupal'ı birkaç alt sistemde (özellikle link oluşturma) farklı bir alan adı kullanarak kandırmak mümkündü. Başka bir deyişle, HTTP Ana Bilgisayarı başlığının kullanıcı girişi olarak kabul edilmesi ve güvenilmemesi gerekir.
$settings['trusted_host_patterns']
Bununla mücadele etmek için, Drupal 8'e, sitenin kullanabileceği "güvenilir" ana bilgisayar adlarının bir listesini yapılandırmak üzere Drupal 8'e eklendi. Ayarın, çalıştırılmasına izin vermek istediğiniz ana bilgisayar adlarını temsil eden, sınırlayıcılar olmadan bir düzenli ifade desenleri dizisi olması gerekir.
Örneğin, sitenizi "www.example.com" adresindeki tek bir ana bilgisayar adından kullanıyorsanız, bunu ayarlarınıza eklemelisiniz (genellikle bulunur ./sites/default/settings.php
):
$settings['trusted_host_patterns'] = array(
'^www\.example\.com$',
);
Not ^
, \.
ve $
. Bunlar PCRE Sözdizimi . Bunlar sadece "www.example.com" ile tam olarak, başlangıçta ve sonunda ekstra bir şey olmadan eşleştirmek istediğiniz ve noktalara joker karakterler değil, nokta olarak davranılması gerektiği anlamına gelir.
"Example.com" adresinden çalışıyorsanız, yalnızca şunu kullanın:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
);
Birden çok etki alanı ve / veya alt etki alanı içeren bir site çalıştırmanız gerekiyorsa ve kanonik URL yönlendirme yapmıyorsanız, ayarınız şöyle görünür:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
'^.+\.example\.com$',
'^example\.org',
'^.+\.example\.org',
);
Bu, sitenin tüm alt alan adlarıyla birlikte example.com ve example.org'daki tüm değişkenlerden kaçmasına izin verir.
$settings['trusted_host_patterns']
Uygun değere ayarladıktan sonra sitenize tekrar göz atabilirsiniz.
Ayrıca, yönetici / raporlar / durumdaki durum raporu sayfasından güvenilir ana bilgisayar ayarlarınızın durumunu da kontrol edebilirsiniz.
Ayarı tamamen kaldırırsanız, güvenilir ana bilgisayar mekanizması kullanılmaz ve durum raporu sayfasında bir hata görürsünüz. Ayrıca siteniz savunmasız HTTP Ana Bilgisayarı başlık saldırıları olabilir.
Bu ayarı yapılandırdıysanız ve bu mesajı görüyorsanız, normal ifade sözdizimini berbat etmişsiniz demektir. Bu durumda, ilk örneği alın ve ayarlarınıza kopyalayın / yapıştırın ve ardından sitenizin çalıştığı ana bilgisayar adını yansıtacak şekilde düzenleyin.
localhost yüklemesi için settings.php dosyanızda aşağıdaki kodu kullanabilirsiniz.
$settings['trusted_host_patterns'] = array(
'^localhost$','^YOUR_IP_ADDRESS$'
);
Bunun nedeni trusted_host_patterns
ayarlar dosyanızdaki değişkendir. Yerel çevre üzerinde çalışıyorsanız ve bunu geçersiz kılmak istiyorsanız, settings.local.php
dosyanızdaki aşağıdaki bölümü tanımlayın :
/*
* Drupal Trusted Host Patterns
*/
$settings['trusted_host_patterns'] = [];
Veya daha genel bir model :
$settings['trusted_host_patterns'] = [ '.*' ];
Veya yerel ortamlar için daha spesifik :
$settings['trusted_host_patterns'] = array(
'^172\.20.\0.\3$',
'^localhost$',
);
En basit çözümdür, ancak HTTP Host başlığını zorlu amaçlarla karıştırmamak için uygun değerleri ayarlamanız gerektiği için önerilmez. Web siteniz sadece yerel sitenizde çalışıyorsa, iyi olmalısınız.
Bkz: Güvenilir ana bilgisayar adı yapılandırması için yeni ayar .
Bu sorun aynı zamanda varsa
<VirtualHost *:443>
ne zaman yapmalısın
<VirtualHost *:80>
SSL olmayan bir kurulumda kurun (geliştirme / test ortamları için olduğu gibi) ve 80 numaralı bağlantı noktasından siteye erişmeyi deneyin
Bunun nedeni, sunucunun güvenilir ana bilgisayar yapılandırmasıdır. Alan adını değiştirdiğinizde üretebilir veya 'trusted_host_patterns'
. Probleme gidermek için, için yeni alan adı eklemek DRUPAL_ROOT/sites/SITE_FOLDER/settings.php
(Ex: sites/defaults/settings.php
)
Örnek: Alan adı = newdomain.com
$settings['trusted_host_patterns'] = array(
'^newdomain.com\.loc$',
'^www\.newdomain.com\.loc$',
);