Güvenlik üstbilgileri hızlı başvuru

Sitenizin güvenliğini sağlayabilecek başlıklar hakkında daha fazla bilgi edinin ve en önemli ayrıntıları hızlıca arayın.

Bu makalede, web sitenizi korumak için kullanabileceğiniz en önemli güvenlik başlıkları listelenmektedir. Web tabanlı güvenlik özelliklerini anlamak, bunları web sitenizde nasıl uygulayacağınızı öğrenmek ve hatırlatmaya ihtiyacınız olduğunda referans olarak kullanmak için bu raporu kullanın.

Hassas kullanıcı verilerini işleyen web siteleri için önerilen güvenlik üstbilgileri:
İçerik Güvenliği Politikası (İGP)
Güvenilir Türler
Tüm web siteleri için önerilen güvenlik üstbilgileri:
X-Content-Type-Options
X-Frame-Options
Kaynaklar Arası Kaynak Politikası (CORP)
Kaynaklar Arası Açıcı Politikası (COOP)
HTTP Katı Taşıma Güvenliği (HSTS)
Gelişmiş özelliklere sahip web siteleri için güvenlik üstbilgileri:
Ortamlar Arası Kaynak Paylaşımı (CORS)
Kaynaklar Arası Yerleştirme Politikası (COEP)
Web'deki bilinen tehditler
Güvenlik üstbilgilerine geçmeden önce web'deki bilinen tehditler ve bu güvenlik başlıklarını neden kullanmak isteyeceğiniz hakkında bilgi edinin.

Güvenlik üst bilgilerini incelemeden önce web'deki bilinen tehditleri ve bu güvenlik başlıklarını neden kullanmak isteyeceğinizi öğrenin.

Sitenizi ekleme güvenlik açıklarından koruyun

Uygulamanız tarafından işlenen güvenilmeyen veriler uygulamasının davranışını etkileyebileceği ve genellikle saldırgan tarafından kontrol edilen komut dosyalarının yürütülmesine neden olabildiğinde yerleştirme güvenlik açıkları ortaya çıkar. Yerleştirme hatalarından kaynaklanan en yaygın güvenlik açığı, yansıtılan XSS, depolanan XSS, DOM tabanlı XSS ve diğer varyantlar dahil olmak üzere çeşitli biçimlerindeki siteler arası komut dosyası çalıştırmadır (XSS).

XSS güvenlik açığı, genellikle bir saldırganın uygulama tarafından işlenen kullanıcı verilerine ve aynı web kaynağında barındırılan diğer tüm bilgilere tam erişim vermesini sağlayabilir.

Yerleştirmeye karşı geleneksel savunmalar arasında HTML şablon sistemlerinin tutarlı bir şekilde sürekli olarak kullanımı, tehlikeli JavaScript API'lerinin kullanılmaması ve dosya yüklemelerini ayrı bir alanda barındırarak ve kullanıcı tarafından kontrol edilen HTML'nin temizlenmesi yoluyla kullanıcı verilerinin doğru şekilde işlenmesi yer alır.

  • Yerleştirme riskini azaltmak amacıyla uygulamanız tarafından hangi komut dosyalarının çalıştırılabileceğini kontrol etmek için İçerik Güvenliği Politikası'nı (İGP) kullanın.
  • Tehlikeli JavaScript API'lerine aktarılan verilerin temizlenmesini zorunlu kılmak için Güvenilir Türler'i kullanın.
  • Tarayıcının, web sitenizin kaynaklarındaki MIME türlerini yanlış yorumlamasını ve bunun sonucunda komut dosyası yürütülmesini önlemek için X-Content-Type-Options'ı kullanın.

Sitenizi diğer web sitelerinden izole edin

Web'in açık olması, web sitelerinin uygulamanın güvenlik beklentilerini ihlal edebilecek şekillerde birbirleriyle etkileşimde bulunmasına olanak tanır. Buna, beklenmedik şekilde kimlik doğrulaması yapılmış isteklerde bulunmak veya başka bir uygulamadan veri yerleştirmek dahildir. Bu da saldırganın, uygulama verilerini değiştirmesine veya okumasına olanak tanır.

Web izolasyonuna zarar veren yaygın güvenlik açıkları arasında tıklama korsanlığı, siteler arası istek sahtekarlığı (CSRF), siteler arası komut dosyası dahil etme (XSSI) ve çeşitli siteler arası sızıntılar yer alır.

Bu başlıklarla ilgileniyorsanız Post-Spectre Web Development harika bir okuma materyalidir.

Güvenli bir şekilde güçlü bir web sitesi oluşturun

Spectre, aynı kaynak politikasına rağmen okunabilecek şekilde aynı tarama bağlam grubuna yüklenen verileri yerleştirir. Tarayıcılar, "çapraz kaynak izolasyonu" adı verilen özel bir ortamın ardındaki güvenlik açığından faydalanabilecek özellikleri kısıtlar. Kökler arası erişime kapalı web sitesi sayesinde SharedArrayBuffer gibi güçlü özellikleri kullanabilirsiniz.

Sitenize gelen trafiği şifreleyin

Şifreleme sorunları, bir uygulama geçiş hâlindeki verileri tam olarak şifrelemediğinde ortaya çıkar ve gizli şekilde dinlenen saldırganların, kullanıcının uygulama ile olan etkileşimlerini öğrenmesine imkan tanır.

Şu durumlarda şifreleme yetersiz hale gelebilir: HTTPS kullanılmaması, karma içerik, Secure özelliği (veya __Secure ön eki) olmayan çerezlerin ayarlanması veya lax CORS doğrulama mantığı.

İçerik Güvenliği Politikası (İGP)

Siteler Arası Komut Dosyası Çalıştırma (XSS), web sitesindeki bir güvenlik açığının kötü amaçlı komut dosyasının yerleştirilmesine ve yürütülmesine izin verdiği saldırıdır.

Content-Security-Policy, sayfa tarafından çalıştırılabilecek komut dosyalarını kısıtlayarak XSS saldırılarını hafifletmek için ek bir katman sağlar.

Aşağıdaki yaklaşımlardan birini kullanarak katı CSP'yi etkinleştirmeniz önerilir:

  • HTML sayfalarınızı sunucuda oluşturursanız nonce tabanlı katı bir CSP kullanın.
  • HTML'nizin statik olarak veya önbelleğe alınması gerekiyorsa (örneğin, tek sayfalık bir uygulamaysa) karma tabanlı katı CSP kullanın.

Örnek kullanım: Nonce tabanlı bir CSP

Content-Security-Policy:
  script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';
CSP'yi kullanma

1. Nonce tabanlı katı bir CSP kullanın {: #nonce-based-csp}

HTML sayfalarınızı sunucuda oluşturursanız nonce tabanlı katı bir CSP kullanın.

Sunucu tarafındaki her istek için yeni bir komut dosyası tek seferlik değer değeri oluşturun ve aşağıdaki üst bilgiyi ayarlayın:

sunucu yapılandırma dosyası

Content-Security-Policy:
  script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';

HTML'de komut dosyalarını yüklemek için tüm <script> etiketlerinin nonce özelliğini aynı {RANDOM1} dizesine ayarlayın.

index.html

<script nonce="{RANDOM1}" src="https://example.com/script1.js"></script>
<script nonce="{RANDOM1}">
  // Inline scripts can be used with the <code>nonce</code> attribute.
</script>

Google Fotoğraflar, katı olmayan, iyi bir CSP örneğidir. Nasıl kullanıldığını görmek için Geliştirici Araçları'nı kullanın.

2. Karma tabanlı katı CSP kullanın {: #hash-based-csp}

HTML'nizin statik olarak veya önbelleğe alınması gerekiyorsa (örneğin, tek sayfalık bir uygulama oluşturuyorsanız) karma tabanlı katı CSP kullanın.

sunucu yapılandırma dosyası

Content-Security-Policy:
  script-src 'sha256-{HASH1}' 'sha256-{HASH2}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';

Çoğu tarayıcı harici komut dosyalarına karma oluşturma işlemini desteklemediğinden HTML'de karma tabanlı bir politika uygulamak için komut dosyalarınızı satır içine almanız gerekir.

index.html

<script>
...// your script1, inlined
</script>
<script>
...// your script2, inlined
</script>

Harici komut dosyalarını yüklemek için B Seçeneği: Karma Tabanlı CSP Yanıt Başlığı bölümündeki "Kaynak komut dosyalarını dinamik olarak yükleme" bölümünü okuyun.

CSP Evaluator, CSP'nizi değerlendirmek için iyi bir araçtır, ancak aynı zamanda nonce tabanlı katı bir CSP örneğidir. Nasıl kullanıldığını görmek için Geliştirici Araçları'nı kullanın.

Desteklenen tarayıcılar

CSP ile ilgili dikkat edilmesi gereken diğer noktalar

  • frame-ancestors yönergesi, sitenizi tıklama korsanlığına karşı korur. Bu risk, güvenilmeyen sitelerin sizinkini yerleştirmesine izin verirseniz ortaya çıkan bir risktir. Daha basit bir çözümü tercih ederseniz yüklemeyi engellemek için X-Frame-Options kullanabilirsiniz. Ancak frame-ancestors, yalnızca belirli kaynakların yerleştirme aracı olarak kullanılmasına izin verebilmeniz için gelişmiş bir yapılandırma sunar.
  • Sitenizin tüm kaynaklarının HTTPS üzerinden yüklendiğinden emin olmak için bir CSP kullanmış olabilirsiniz. Bu konu artık daha az alakalı: Günümüzde çoğu tarayıcı karma içeriği engelliyor.
  • CSP'yi yalnızca rapor modunda da ayarlayabilirsiniz.
  • CSP'yi üstbilgi sunucu tarafı olarak ayarlayamazsanız meta etiket olarak da ayarlayabilirsiniz. Meta etiketler için yalnızca rapor modunu kullanamayacağınızı unutmayın (ancak bu durum değişebilir).

Daha fazla bilgi

Güvenilir Türler

DOM tabanlı XSS, kötü amaçlı verilerin eval() veya .innerHTML gibi dinamik kod yürütmeyi destekleyen bir havuza iletildiği bir saldırıdır.

Trusted Types, DOM XSS içermeyen uygulama yazmak, güvenlik incelemesi ve uygulama bakımını yapmak için araçlar sağlar. Bunlar CSP aracılığıyla etkinleştirilebilir ve tehlikeli web API'lerinin yalnızca özel bir nesneyi, yani Güvenilir Tür'ü kabul etmesini sınırlandırarak JavaScript kodunu varsayılan olarak güvenli hale getirir.

Bu nesneleri oluşturmak için, veriler DOM'ye yazılmadan önce güvenlik kurallarının (çıkış yapma veya temizleme gibi) tutarlı bir şekilde uygulanmasını sağlayabileceğiniz güvenlik politikaları tanımlayabilirsiniz. Bu durumda, kodda DOM XSS'yi kullanıma sunabilecek tek yer bu politikalardır.

Örnek kullanımlar

Content-Security-Policy: require-trusted-types-for 'script'
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
  // Name and create a policy
  const policy = trustedTypes.createPolicy('escapePolicy', {
    createHTML: str => {
      return str.replace(/\</g, '&lt;').replace(/>/g, '&gt;');
    }
  });
}

// Assignment of raw strings is blocked by Trusted Types.
el.innerHTML = &#39;some string&#39;; // This throws an exception.

// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML(&#39;&lt;img src=x onerror=alert(1)&gt;&#39;);
el.innerHTML = escaped;  // &#39;&amp;lt;img src=x onerror=alert(1)&amp;gt;&#39;

Trusted Types nasıl kullanılır?

  1. Tehlikeli DOM havuzları için Trusted Types'ı zorunlu kılın CSP ve Trusted Types başlığı:

    Content-Security-Policy: require-trusted-types-for 'script'
    

    Şu anda require-trusted-types-for yönergesi için kabul edilen tek değer 'script' değeridir.

    Elbette, Güvenilir Türleri diğer CSP yönergeleriyle birleştirebilirsiniz:

Yukarıda belirtilen nonce tabanlı bir CSP'yi Trusted Types ile birleştirme:

Content-Security-Policy:
  script-src &#39;nonce-{RANDOM1}&#39; &#39;strict-dynamic&#39; https: &#39;unsafe-inline&#39;;
  object-src &#39;none&#39;;
  base-uri &#39;none&#39;;
  require-trusted-types-for &#39;script&#39;;

<aside class="note"><b>Not: </b> Ek bir <code>güvenilir-türler</code> yönergesi ayarlayarak izin verilen Güvenilir Türler politikası adlarını sınırlayabilirsiniz (örneğin, <code>güvenilir-türler myPolicy</code>). Ancak bu bir gerekli değildir. </aside>

  1. Politika tanımlama

    Politika:

    // Feature detection
    if (window.trustedTypes && trustedTypes.createPolicy) {
      // Name and create a policy
      const policy = trustedTypes.createPolicy('escapePolicy', {
        createHTML: str => {
          return str.replace(/\/g, '>');
        }
      });
    }
    
  2. Politikayı uygula

    DOM'ye veri yazarken bu politikayı kullanın:

    // Assignment of raw strings are blocked by Trusted Types.
    el.innerHTML = &#39;some string&#39;; // This throws an exception.</p>
    
    <p>// Assignment of Trusted Types is accepted safely.
    const escaped = policy.createHTML(&#39;<img src="x" onerror="alert(1)">&#39;);
    el.innerHTML = escaped;  // &#39;&lt;img src=x onerror=alert(1)&gt;&#39;
    

    require-trusted-types-for 'script' ile güvenilir bir tür kullanmak zorunludur. Tehlikeli herhangi bir DOM API'nin dizeyle kullanılması hataya neden olur.

Desteklenen tarayıcılar

Daha fazla bilgi

X-Content-Type-Options

Alanınızdan kötü amaçlı bir HTML dokümanı sunulduğunda (örneğin, bir fotoğraf hizmetine yüklenen bir görüntü geçerli HTML işaretlemesi içeriyorsa) bazı tarayıcılar bu dokümanı etkin doküman olarak görür ve uygulamanın bağlamında komut dosyaları çalıştırmasına izin verir. Bu da siteler arası komut dosyası hatasına yol açar.

X-Content-Type-Options: nosniff, tarayıcıya belirli bir yanıt için Content-Type üst bilgisinde ayarlanan MIME türünün doğru olduğunu bildirerek bunu engeller. Bu başlık, tüm kaynaklarınız için önerilir.

Örnek kullanım

X-Content-Type-Options: nosniff
X-Content-Type-Options nasıl kullanılır?

X-Content-Type-Options: nosniff, doğru Content-Type üst bilgisi ile sunucunuzdan sunulan tüm kaynaklar için önerilir.

X-Content-Type-Options: nosniff

Doküman HTML'siyle gönderilen örnek üstbilgiler

X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 64
  • 12
  • 50
  • 11

Kaynak

Daha fazla bilgi

X-Çerçeve-Seçenekleri

Kötü amaçlı bir web sitesi sitenizi iframe olarak yerleştirebiliyorsa bu durum, saldırganların tıklama korsanlığı ile kullanıcı tarafından gerçekleştirilen istenmeyen işlemleri başlatmasına yol açabilir. Ayrıca bazı durumlarda Spectre türü saldırılar, kötü amaçlı web sitelerine, yerleştirilmiş bir dokümanın içeriği hakkında bilgi edinme şansı verir.

X-Frame-Options bir tarayıcının <frame>, <iframe>, <embed> veya <object> içinde bir sayfayı oluşturmasına izin verilip verilmeyeceğini belirtir. Diğer dokümanlar tarafından yerleştirilmesine izin verilip verilmediğini belirtmek için bu üst bilginin tüm dokümanların gönderilmesi önerilir.

Örnek kullanım

X-Frame-Options: DENY
X-Frame-Options nasıl kullanılır?

Yerleştirilmek üzere tasarlanmamış tüm dokümanlar X-Frame-Options üstbilgisini kullanmalıdır.

Bu demoda aşağıdaki yapılandırmaların bir iframe yüklemeyi nasıl etkilediğini deneyebilirsiniz. X-Frame-Options açılır menüsünü değiştirin ve iframe'i yeniden yükle düğmesini tıklayın.

Web sitenizi diğer web siteleri tarafından gömülmeye karşı korur

Başka dokümanlar tarafından yerleştirilmesini reddet.

X-Frame-Seçenekleri: DENY
X-Frame-Options: DENY

Web sitenizi, çapraz kaynak web siteleri tarafından gömülmeye karşı korur

Yalnızca aynı kaynak dokümanlar tarafından yerleştirilmesine izin ver.

X-Frame-Options: SAMEORIGIN

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 4
  • 12
  • 4
  • 4

Kaynak

Daha fazla bilgi

Merkezler Arası Kaynak Politikası (CORP)

Bir saldırgan, web tabanlı siteler arası sızıntılardan yararlanarak bunlarla ilgili bilgileri öğrenmek için başka bir kaynaktan (ör. siteniz) kaynakları yerleştirebilir.

Cross-Origin-Resource-Policy, yüklenebileceği web sitesi grubunu belirterek bu riski azaltır. Başlık şu üç değerden birini alır: same-origin, same-site ve cross-origin. Diğer web siteleri tarafından yüklenmesine izin verilip verilmediğini belirtmek için tüm kaynakların bu üst bilgiyi göndermesi önerilir.

Örnek kullanım

Cross-Origin-Resource-Policy: same-origin
CORP'yi kullanma

Tüm kaynakların aşağıdaki üç başlıktan biriyle sunulması önerilir.

Aşağıdaki yapılandırmaların, Cross-Origin-Embedder-Policy: require-corp ortamındaki kaynakların yüklenmesini nasıl etkilediğini bu demoda deneyebilirsiniz. Cross-Origin-Resource-Policy açılır menüsünü değiştirin ve efekti görmek için iframe'i yeniden yükle veya Resmi yeniden yükle düğmesini tıklayın.

Kaynakların yüklenmesine izin ver cross-origin

Benzer bir etkiye sahip CORS üzerinden sunulmadıkları sürece, CDN benzeri hizmetlerin kaynaklara cross-origin uygulaması önerilir (bunun nedeni, bunların genellikle çapraz kaynak sayfalar tarafından yüklenmesidir).

Çapraz Kökenli-Kaynak-Politikası: çapraz kaynak
Cross-Origin-Resource-Policy: cross-origin

same-origin uygulamasından yüklenecek kaynakları sınırlayın

same-origin, yalnızca aynı kaynak sayfalar tarafından yüklenmesi amaçlanan kaynaklara uygulanmalıdır. Bunu, kullanıcı hakkında hassas bilgiler içeren kaynaklara veya yalnızca aynı kaynaktan çağrılması amaçlanan bir API'nin yanıtlarını içeren kaynaklara uygulamanız gerekir.

Bu üst bilgiye sahip kaynakların, örneğin yeni bir tarayıcı penceresindeki URL'ye giderek doğrudan yüklenebileceğini unutmayın. Merkezler Arası Kaynak Politikası yalnızca kaynağı diğer web siteleri tarafından yerleştirilmesine karşı korur.

Çapraz Kökenli-Kaynak-Politikası: aynı kaynak
Cross-Origin-Resource-Policy: same-origin

same-site uygulamasından yüklenecek kaynakları sınırlayın

Yukarıdakine benzeyen ancak sitenizin diğer alt alan adları tarafından yüklenmesi amaçlanan kaynaklara same-site uygulanması önerilir.

Çapraz Kökenli-Kaynak-Politikası: aynı site
Cross-Origin-Resource-Policy: same-site

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 73
  • 79
  • 74
  • 12

Kaynak

Daha fazla bilgi

Çapraz Kaynak Açıcı Politikası (COOP)

Bir saldırganın web sitesi, web tabanlı siteler arası sızıntılardan yararlanarak siteyle ilgili bilgileri öğrenmek için pop-up pencerede başka bir siteyi açabilir. Bazı durumlarda bu, Spectre'a dayalı yan kanal saldırılarının istismarına da izin verebilir.

Cross-Origin-Opener-Policy üst bilgisi, bir dokümanın kendisini window.open() aracılığıyla açılan çapraz kaynak pencerelerden veya rel="noopener" içermeyen target="_blank" içeren bir bağlantıdan izole etmesi için bir yol sunar. Sonuç olarak, belgenin çapraz kaynak açıcıları dokümana referans veremez ve belgeyle etkileşimde bulunamaz.

Örnek kullanım

Cross-Origin-Opener-Policy: same-origin-allow-popups
COOP nasıl kullanılır?

Aşağıdaki yapılandırmaların, kaynaklar arası pop-up pencereyle iletişimi nasıl etkilediğini bu demoda deneyebilirsiniz. Hem doküman hem de pop-up pencere için Cross-Origin-Opener-Policy açılır menüsünü değiştirin, mesajın gerçekten teslim edilip edilmediğini görmek için Pop-up aç düğmesini ve ardından Bir postMessage gönder'i tıklayın.

Bir dokümanı kaynaklar arası pencerelerden izole etme

same-origin ayarlanırsa doküman, kaynaklar arası belge pencerelerinden izole edilir.

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin

Bir dokümanı kaynaklar arası pencerelerden izole et ancak pop-up'lara izin ver

same-origin-allow-popups ayarlandığında, same-origin veya same-origin-allow-popups ile COOP ayarlanmadığı sürece dokümanın pop-up pencerelerine referans vermesi sağlanır. Yani same-origin-allow-popups, pop-up pencere olarak açıldığında dokümana referans verilmesini koruyabilir ancak kendi pop-up'larıyla iletişim kurmasına izin verebilir.

Cross-Origin-Opener-Policy: same-origin-allow-popups
Cross-Origin-Opener-Policy: same-origin-allow-popups

Kaynaklar arası pencerelerde bir dokümana referans verilmesine izin ver

unsafe-none, varsayılan değerdir ancak bu dokümanın kaynaklar arası bir pencerede açılabileceğini açıkça belirtebilir ve karşılıklı erişimi koruyabilirsiniz.

Cross-Origin-Opener-Policy: güvenli-olmayan-hiçbiri
Cross-Origin-Opener-Policy: unsafe-none

Rapor kalıpları COOP ile uyumlu değil

COOP, Reporting API ile pencereler arası etkileşimleri engellediğinde rapor alabilirsiniz.

Cross-Origin-Opener-Policy: same-origin; report-to="coop"

COOP, salt rapor modunu da destekler. Böylece, kaynaklar arası belgeler arasındaki iletişimi engellemeden rapor alabilirsiniz.

Cross-Origin-Opener-Policy-Report-Only: same-origin; report-to="coop"

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 83
  • 83
  • 79
  • 15,2

Kaynak

Daha fazla bilgi

Merkezler Arası Kaynak Paylaşımı (CORS)

Bu makaledeki diğer öğelerin aksine, merkezler arası kaynak paylaşımı (CORS) bir başlık değildir, kaynaklar arası kaynaklara erişim isteğinde bulunan ve erişim izni veren bir tarayıcı mekanizmasıdır.

Varsayılan olarak tarayıcılar, bir web sayfasının kaynaklar arası kaynaklara erişmesini engellemek için aynı kaynak politikasını zorunlu kılar. Örneğin, kaynaklar arası bir resim yüklendiğinde, web sayfasında görsel olarak görüntülense bile, sayfadaki JavaScript resmin verilerine erişemez. Kaynak sağlayıcı, CORS'a kaydolarak kısıtlamaları gevşetebilir ve diğer web sitelerinin kaynağı okumasına izin verebilir.

Örnek kullanım

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
CORS'yi kullanma

CORS'yi nasıl yapılandırabileceğinizi incelemeden önce, istek türleri arasındaki farkı anlamanız faydalı olur. İstek ayrıntılarına bağlı olarak bir istek, basit istek veya ön kontrollü istek olarak sınıflandırılır.

Basit istek ölçütleri:

  • Yöntem GET, HEAD veya POST şeklindedir.
  • Özel üstbilgiler yalnızca Accept, Accept-Language, Content-Language ve Content-Type etiketlerini içerir.
  • Content-Type değeri: application/x-www-form-urlencoded, multipart/form-data veya text/plain.

Diğer her şey ön kontrollü istek olarak sınıflandırılır. Daha fazla bilgi için Kaynaklar Arası Kaynak Paylaşımı (CORS) - HTTP | MDN bölümüne göz atın.

Basit istek

Bir istek basit istek ölçütlerini karşıladığında tarayıcı, istekte bulunan kaynağı belirten Origin başlığına sahip bir çapraz kaynak isteği gönderir.

Örnek istek başlığı

Get / HTTP/1.1
Origin: https://example.com

Örnek yanıt üstbilgisi

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Origin: https://example.com, https://example.com öğesinin yanıtın içeriğine erişebileceğini belirtir. Tüm siteler tarafından okunabilmesi gereken kaynaklar, bu üst bilgiyi * olarak ayarlayabilir. Bu durumda, tarayıcı isteğin yalnızca kimlik bilgileri olmadan yapılmasını gerektirir.
  • Access-Control-Allow-Credentials: true, kimlik bilgileri (çerezler) taşıyan isteklerin kaynağı yüklemesine izin verildiğini belirtir. Aksi takdirde, istekte bulunan kaynak Access-Control-Allow-Origin başlığında bulunsa bile kimliği doğrulanmış istekler reddedilir.

Bu basit isteğin, Cross-Origin-Embedder-Policy: require-corp ortamındaki kaynakların yüklenmesini nasıl etkilediğini bu demoda deneyebilirsiniz. Ortamlar Arası Kaynak Paylaşımı onay kutusunu tıklayın ve efekti görmek için Resmi yeniden yükle düğmesini tıklayın.

Yayın öncesi istekler

Ön kontrol işlemi yapılan bir isteğin öncesinde, sonraki isteğin gönderilmesine izin verilip verilmediğini kontrol etmek için bir OPTIONS isteği bulunur.

Örnek istek başlığı

OPTIONS / HTTP/1.1
Origin: https://example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-PINGOTHER, Content-Type
  • Access-Control-Request-Method: POST, POST yöntemiyle aşağıdaki isteğin yapılmasını sağlar.
  • Access-Control-Request-Headers: X-PINGOTHER, Content-Type, istek sahibinin sonraki istekte X-PINGOTHER ve Content-Type HTTP üst bilgilerini ayarlamasına olanak tanır.

Örnek yanıt başlıkları

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
  • Access-Control-Allow-Methods: POST, GET, OPTIONS; sonraki isteklerin POST, GET ve OPTIONS yöntemleriyle gönderilebileceğini belirtir.
  • Access-Control-Allow-Headers: X-PINGOTHER, Content-Type, sonraki isteklerin X-PINGOTHER ve Content-Type üstbilgilerini içerebileceğini belirtir.
  • Access-Control-Max-Age: 86400, ön kontrolden geçmiş isteğin sonucunun 86.400 saniye için önbelleğe alınabileceğini belirtir.

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 4
  • 12
  • 3,5
  • 4

Kaynak

Daha fazla bilgi

Çapraz Kaynak Yerleştirme Politikası (COEP)

Spectre tabanlı saldırıların kaynaklar arası kaynakları çalma yeteneğini azaltmak için SharedArrayBuffer veya performance.measureUserAgentSpecificMemory() gibi özellikler varsayılan olarak devre dışı bırakılır.

Cross-Origin-Embedder-Policy: require-corp; resim, komut dosyası, stil sayfası, iframe ve diğerleri gibi kaynaklar arası kaynakları, bu kaynakların CORS veya CORP üst bilgileri aracılığıyla yüklenmeye açıkça izin vermediği sürece bu kaynakların ve çalışanların yüklemesini engeller. Bir dokümanı çapraz kaynak izolasyonu için etkinleştirmek üzere COEP,Cross-Origin-Opener-Policy ile birleştirilebilir.

Dokümanınız için çapraz kaynak izolasyonunu etkinleştirmek istediğinizde Cross-Origin-Embedder-Policy: require-corp kullanın.

Örnek kullanım

Cross-Origin-Embedder-Policy: require-corp
COEP nasıl kullanılır?

Örnek kullanımlar

COEP, require-corp değerini tek bir şekilde alır. Bu üst bilgiyi göndererek tarayıcıya, CORS veya CORP aracılığıyla dahil edilmeyen kaynakların yüklenmesini engelleme talimatı verebilirsiniz.

COEP&#39;in işleyiş şekli

Aşağıdaki yapılandırmaların, kaynakların yüklenmesini nasıl etkilediğini bu demoda deneyebilirsiniz. Kaynak yükleme kaynaklarını nasıl etkilediğini görmek için Cross-Origin-Embedder-Policy açılır menüsünü, Cross-Origin-Resource-Policy açılır menüsünü, Yalnızca Rapor onay kutusunu vb. değiştirin. Ayrıca, engellenen kaynakların raporlanıp raporlanmadığını görmek için raporlama uç noktası demosunu açın.

Kaynaklar arası izolasyonu etkinleştir

Cross-Origin-Opener-Policy: same-origin ile birlikte Cross-Origin-Embedder-Policy: require-corp göndererek kaynaklar arası izolasyonu etkinleştirin.

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

COEP ile uyumlu olmayan rapor kaynakları

Reporting API'yi kullanarak COEP'nin neden olduğu engellenmiş kaynaklarla ilgili raporlar alabilirsiniz.

Cross-Origin-Embedder-Policy: require-corp; report-to="coep"

COEP, salt rapor modunu da destekler, böylece yüklenen kaynakları gerçekten engellemeden rapor alabilirsiniz.

Cross-Origin-Embedder-Policy-Report-Only: require-corp; report-to="coep"

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 83
  • 83
  • 79
  • 15,2

Kaynak

Daha fazla bilgi

HTTP Katı Taşıma Güvenliği (HSTS)

Düz HTTP bağlantısı üzerinden iletişim şifrelenmez, böylece aktarılan veriler ağ düzeyindeki gizlice meraklılar tarafından erişilebilir.

Strict-Transport-Security üst bilgisi, tarayıcıya siteyi hiçbir zaman HTTP kullanarak yüklememesi ve bunun yerine HTTPS kullanması gerektiği konusunda bildirir. Ayarlandıktan sonra tarayıcı, başlıkta tanımlanan bir süre boyunca alana yönlendirme olmadan erişmek için HTTP yerine HTTPS kullanır.

Örnek kullanım

Strict-Transport-Security: max-age=31536000
HSTS nasıl kullanılır?

HTTP'den HTTPS'ye geçen tüm web siteleri, HTTP içeren bir istek alındığında Strict-Transport-Security üst bilgisi ile yanıt vermelidir.

Strict-Transport-Security: max-age=31536000

Desteklenen tarayıcılar

Tarayıcı Desteği

  • 4
  • 12
  • 4
  • 7

Kaynak

Daha fazla bilgi

Daha fazla bilgi