WordPress'te HTTP güvenlik başlıklarını yapılandırma

Yayınlanan: 2022-02-23

Çoğu modern tarayıcı, WordPress web sitenizin güvenliğini artırmak, ziyaretçilerinizi tıklama, siteler arası komut dosyası çalıştırma ve diğer yaygın saldırılar gibi tarayıcı saldırı sınıflarından daha iyi korumak ve hatta sitenizin ziyaretçilerinin gizliliğini iyileştirmek için çeşitli HTTP güvenlik başlıklarını destekler. internet üzerinden.

Bu makale, bu HTTP güvenlik üstbilgilerinin ne olduğuna ilişkin bir genel bakış sunar, nasıl çalıştıklarını ve kapsamlarının ne olduğunu açıklar. Ayrıca, WordPress web sitenizin güvenliğini artırmak için bu HTTP güvenlik başlıklarını web sitenize nasıl ekleyebileceğinizi de açıklar.

Zaten bir HTTP güvenlik başlığı nedir?

HTTP güvenlik üstbilgileri, bir dizi HTTP üstbilgisidir 1 bir web istemcisi (tarayıcı) ve bir web sunucusu arasında, bir web istemcisi ve bir sunucu arasındaki HTTP iletişiminin güvenlikle ilgili ayarlarını belirtmek için kullanılan bir değiş tokuş edilir. WordPress web sitenizde güvenlik başlıklarını etkinleştirmek, web sitenizin siteler arası komut dosyası çalıştırma (XSS) ve tıklama korsanlığı dahil olmak üzere yaygın saldırılara karşı direncini artırabilir.

HTTP güvenlik başlıkları WordPress güvenliğini nasıl iyileştirebilir?

HTTP güvenlik başlıkları, tarayıcıya çeşitli güvenlik özelliklerini buna göre etkinleştirmesini bildirerek WordPress web sitenizin güvenliğini artırmaya yardımcı olabilir. Çoğu durumda, doğru başlıkları uygulamak zor bir iştir ve hatta eski tarayıcılarda farklı sonuçlar doğurabilir (veya tamamen etkisiz olabilir), bu nedenle herhangi bir değişikliği uygulamadan önce bir test veya hazırlama ortamında denemek en iyi uygulamadır. Canlı bir WordPress sitesi.

En sık kullanılan HTTP güvenlik başlıkları

Hangi başlıklar ne yapar? En önemli ve yaygın olarak kullanılan HTTP güvenlik başlıklarından bazılarına genel bir bakış atalım.

Sıkı-Ulaşım-Güvenlik

Strict-Transport-Security HTTP başlığı, tarayıcıya HTTP Strict Transport Security (HSTS) 2'yi zorlaması talimatını verir. . Bir HSTS başlığı, kullanıcı (veya bir Ortadaki Adam saldırısı gerçekleştirmeye çalışan bir saldırgan) siteye HTTP üzerinden erişmeye çalışsa bile, ziyaret eden tarayıcıya siteye her zaman HTTPS üzerinden (HTTP yerine) erişmesi talimatını verir. HTTP kullanılamıyor olsa bile tarayıcı zorla HTTPS'ye geçecektir — bu ölçüde, HSTS'yi yalnızca HTTPS'yi etkinleştirdiyseniz ve karma içerik sorunları olmadan tam olarak düzgün çalışıyorsa etkinleştirmelisiniz 3 .

Aşağıdaki HTTP Sıkı Aktarım Güvenliği (HSTS) HTTP yanıt başlığı, 1 yıl (31536000 saniye) boyunca HSTS'yi etkinleştirir.


Strict-Transport-Security: max-age=31536000

İçerik-Güvenlik-Politikası

İçerik-Güvenlik-İlkesi HTTP güvenlik başlığı, çok fazla güce ve yapılandırılabilirliğe sahip bir HTTP başlığıdır. Modern tarayıcılarda bulunan ve Siteler Arası Komut Dosyası Çalıştırma (XSS) ve veri enjeksiyon saldırıları gibi saldırıları tespit etmeye ve azaltmaya yardımcı olan ek bir güvenlik katmanı sağlayan bir dizi güvenlik özelliği olan tarayıcının İçerik Güvenliği Politikasını (CSP) yapılandırır.

Doğru CSP ayarları söz konusu web sitesine çok geniş ölçüde bağlı olacağından ve dağıtımdan önce yoğun bir şekilde test edilmesi gerektiğinden, İçerik Güvenliği Politikası (CSP) da herkesin bildiği gibi doğru olması zordur - o kadar ki, bir kardeş İçerik-Güvenlik-Politikası vardır -Rapor-Sadece 4 Yalnızca CSP'yi test etmek için kullanılan HTTP başlığı.

Aşağıda, yalnızca web sitesinin sunulduğu kaynaktan varlıkların yüklenmesine izin veren oldukça basit bir İçerik Güvenliği Politikası (CSP) politikası örneği verilmiştir.


Content-Security-Policy: default-src 'self'

Ancak, İçerik-Güvenlik Politikası (CSP), bu basit örnekte gösterilenden çok daha fazla yapılandırılabilir. CSP, tarayıcının varlıkları (örneğin CSS, resimler ve yazı tipleri) yükleyebileceği kaynakları belirtmek için script-src , style-src ve img-src gibi diğer yönergeleri içerir. CSP'nin nasıl yapılandırılabileceğinin tam listesi için İçerik Güvenliği Politikası hızlı başvuru kılavuzlarına bakın.

X-İçerik-Türü-Seçenekler

X-Content-Type-Options HTTP güvenlik başlığı, MIME türü koklamanın bir sonucu olarak ortaya çıkan Siteler Arası Komut Dosyası Çalıştırma ( XSS) saldırılarını önleyen tüm büyük tarayıcılar tarafından saygı duyulan standart olmayan bir başlıktır. . Mevcut olduğunda, bu başlık tarayıcıya Content-Type HTTP başlığında tanımlanan MIME türlerini kesinlikle izlemesini ve tarayıcının yanıt verilerinin kendisi için doğru MIME türünü algılamaya çalışmaması gerektiğini söyler. Başlığın tek bir yönergesi vardır - nosniff.


X-Content-Type-Options: nosniff

Eski veya kullanılmayan HTTP güvenlik başlıkları

Ayrıca bir dizi eski ve kullanılmayan HTTP güvenlik başlığı vardır. Artık kullanılmıyorlar ya da artık çalışmıyorlar çünkü ya geçici düzeltmeler, deneyler ve hatta o zamandan beri kullanımdan kaldırılan ya da tamamen değiştirilen standart olmayan girişimler olarak tanıtıldılar. Aşağıda bu HTTP güvenlik başlıklarının bir listesi bulunmaktadır.

Content-Security-Policy ile değiştirilen HTTP güvenlik başlıkları

X-Frame-Seçenekleri

X-Frame-Options HTTP güvenlik başlığı, tarayıcıları Siteler Arası Komut Dosyası Çalıştırma (XSS), Tıklama Girişi ve bir iframe'in içine yerleştirilen bir web sitesine dayanan diğer saldırılar.

Bu başlık artık çerçeve ataları İçerik Güvenliği Politikası (CSP) yönergesi ile değiştirilmiştir. X-Frame-Options yerine çerçeve-atalar yönergesi ile CSP'nin kullanılması tavsiye edilir.

X-XSS-Koruması

X-XSS-Protection HTTP güvenlik başlığı, Siteler Arası Komut Dosyası Çalıştırma (XSS) saldırılarına karşı tarayıcı korumalarını etkinleştirmek veya devre dışı bırakmak için sunulan standart olmayan bir başlıktı. Pratikte, bu başlık saldırganların atlaması için genellikle kolaydı ve sonuç olarak çoğu modern tarayıcı tarafından yok sayılır.

Genel-Key-Pinler

TLS sertifikası sahteciliğini önlemek için Google Chrome ve Firefox'ta sunulan Ortak Anahtar Sabitleme (HPKP) güvenlik özelliğini yapılandırmak için kullanılan Ortak Anahtar Pinleri HTTP güvenlik başlığı. HPKP, web sunucusunun, tarayıcıya, web sitesinin kullandığı TLS sertifikası ortak anahtarlarının bir dizi kriptografik karmalarını sağlamasını sağlayarak çalıştı; bu, tarayıcının sonraki isteklerde sunucudan aldığı sertifikalarla karşılaştırmak için kullanacağı sırayla. Sorun, HPKP'nin yönetilmesinin oldukça karmaşık olması ve sıklıkla web sitesi erişimini tamamen devre dışı bırakabilecek yanlış yapılandırmalara yol açmasıydı - bu nedenle artık kullanılması önerilmez.

WordPress'te HTTP Güvenlik Başlıkları Ekleme

HTTP güvenlik üstbilgileri, web sunucunuzda veya uygun olduğunda İçerik Dağıtım Ağınızda (CDN) veya Web Uygulaması Güvenlik Duvarınızda yapılandırıldıklarında en iyi şekilde çalışır. Bu, her istek üzerine gönderilmelerini sağlar. Alternatif olarak, daha az ideal olsa da, bu başlıkları sizin için ayarlamak için bir WordPress eklentisi kullanabilirsiniz.

Artık HTTP güvenlik başlıklarının amacını ele aldığımıza göre, WordPress web sitenizde bunları etkinleştirmenin birkaç yolu var.

Apache HTTP Sunucusu kullanarak WordPress'e HTTP güvenlik başlıkları ekleme

Aşağıda, HTTP Sıkı Aktarım Güvenliği (HSTS), X-Content-Type-Options ve basit bir İçerik Güvenliği Politikası'nı etkinleştirmek için gereken Apache HTTP Sunucusu yapılandırmasının bir örneği verilmiştir.


<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000"
Header set X-Content-Type-Options "nosniff"
Header set Content-Security-Policy "default-src 'self'"
</ifModule>

Nginx kullanarak WordPress'e HTTP güvenlik başlıkları ekleme

Benzer şekilde, HTTP Strict Transport Security (HSTS), X-Content-Type-Options ve basit bir İçerik Güvenlik Politikası'nı etkinleştirmek için gereken Nginx yapılandırmasının bir örneği aşağıdadır.


server {
add_header Strict-Transport-Security "max-age=31536000; always;
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'self'" always;
}

Bir eklenti kullanarak WordPress'e HTTP güvenlik başlıkları ekleme

Alternatif olarak, daha az etkili olsa da (üstbilgileri değiştirmek için WordPress'in kendisine güvendiğinden), bir WordPress eklentisi kullanmak, WordPress web sitenize HTTP güvenlik üstbilgileri eklemenin en kolay yolu olabilir. Yönlendirme eklentisi gibi eklentiler, web sitenize özel HTTP üstbilgileri eklemenize olanak tanır.

Bir Web Sitesi İçin HTTP Güvenlik Başlıkları Nasıl Kontrol Edilir?

WordPress web sitenize HTTP güvenlik başlıkları eklediğinizde, bunların doğru şekilde yapılandırıldığından ve beklediğiniz gibi çalıştığından emin olmak istersiniz. Bunu test etmenin en kolay yolu, Security Headers 6 adlı ücretsiz bir araç kullanmaktır. .

Güvenlik Başlıkları aracını kullanmak, web sitenizin URL'sini girip "Tara" düğmesine basmak kadar basittir. Daha sonra, bu notun nasıl belirlendiğine dair bir açıklama ile birlikte A+'dan F'ye kadar bir not alacaksınız.

Bu makalede kullanılan referanslar [ + ]

Bu makalede kullanılan referanslar
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
2 https://owasp.org/www-project-secure-headers/#http-strict-transport-security
3 https://web.dev/what-is-mixed-content/
4 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
5 https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing
6 https://securityheaders.com/