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

Sitenizi güvende tutabilecek 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 ihtiyaç duyduğunuzda referans olarak kullanın.

Hassas kullanıcı verilerini işleyen web siteleri için önerilen güvenlik başlıkları:
İç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
Cross-Origin Resource Policy (CORP)
Cross-Origin Opener Policy (COOP)
HTTP Strict Transport Security (HSTS)
Gelişmiş özelliklere sahip web siteleri için güvenlik başlıkları:
Merkezler Arası Kaynak Paylaşımı (CORS)
Çapraz Kaynak Yerleştirme Politikası (COEP)
Web'deki bilinen tehditler
Güvenlik başlıklarına 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 başlıklarına geçmeden önce web'deki bilinen tehditler ve bu güvenlik başlıklarını neden kullanmak isteyeceğiniz hakkında bilgi edinin.

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

Enjeksiyon güvenlik açıkları, uygulamanız tarafından işlenen güvenilmeyen veriler uygulamanızın davranışını etkileyebildiğinde ve genellikle saldırgan tarafından kontrol edilen komut dosyalarının yürütülmesine yol açtığında 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çimlerdeki siteler arası komut dosyası çalıştırmadır (XSS).

Bir XSS güvenlik açığı, genellikle saldırgana 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 sağlayabilir.

Geleneksel enjeksiyon savunmaları arasında HTML şablon sistemlerinde otomatik kaçışın tutarlı bir şekilde kullanılması, tehlikeli JavaScript API'lerinin kullanılmaması, dosya yüklemelerinin ayrı bir alanda barındırılması ve kullanıcı tarafından kontrol edilen HTML'nin temizlenmesi yoluyla kullanıcı verilerinin uygun şekilde işlenmesi yer alır.

  • Enjeksiyon riskini azaltmak için uygulamanız tarafından hangi komut dosyalarının yürütülebileceğini kontrol etmek üzere İçerik Güvenliği Politikası (İGP)'ni kullanın.
  • Tehlikeli JavaScript API'lerine iletilen verilerin temizlenmesini zorunlu kılmak için Trusted Types'ı kullanın.
  • Tarayıcının, web sitenizin kaynaklarının MIME türlerini yanlış yorumlamasını önlemek için X-Content-Type-Options'ı kullanın. Bu durum, komut dosyası yürütülmesine neden olabilir.

Sitenizi diğer web sitelerinden izole etme

Web'in açık olması, web sitelerinin bir uygulamanın güvenlik beklentilerini ihlal edebilecek şekilde etkileşime girmesine olanak tanır. Bu durum, beklenmedik şekilde kimliği doğrulanmış istekler göndermeyi veya başka bir uygulamadan gelen verileri saldırganın dokümanına yerleştirmeyi içerir. Bu sayede saldırgan, uygulama verilerini değiştirebilir veya okuyabilir.

Web yalıtımını zayıflatan yaygın güvenlik açıkları arasında tıklama hırsızlığı, siteler arası istek sahteciliği (CSRF), siteler arası komut dosyası ekleme (XSSI) ve çeşitli siteler arası sızıntılar yer alır.

Bu başlıklarla ilgileniyorsanız Post-Spectre Web Development adlı makaleyi okuyabilirsiniz.

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

Spectre, aynı göz atma bağlamı grubuna yüklenen tüm verileri aynı kaynak politikasına rağmen okunabilir hale getirebilir. Tarayıcılar, "kaynaklar arası izolasyon" adı verilen özel bir ortamın arkasındaki güvenlik açığından yararlanabilecek özellikleri kısıtlar. Kökler arası erişime kapalı web siteleri ile SharedArrayBuffer gibi güçlü özellikleri kullanabilirsiniz.

Sitenize gelen trafiği şifreleme

Şifreleme sorunları, bir uygulama aktarım halindeki verileri tam olarak şifrelemediğinde ortaya çıkar. Bu durumda, dinleme saldırısı yapanlar kullanıcının uygulamayla etkileşimleri hakkında bilgi edinebilir.

Yetersiz şifreleme aşağıdaki durumlarda ortaya çıkabilir: HTTPS kullanılmaması, karma içerik, Secure özelliği (veya __Secure önek) olmadan çerez ayarlanması ya da gevşek CORS doğrulama mantığı.

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

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

Content-Security-Policy, sayfa tarafından yürütülebilecek komut dosyalarını kısıtlayarak XSS saldırılarını azaltmak 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şturuyorsanız nonce tabanlı katı bir CSP kullanın.
  • HTML'nizin statik olarak sunulması veya önbelleğe alınması gerekiyorsa (ör. tek sayfalık bir uygulama ise) karma tabanlı katı bir CSP kullanın.

Örnek kullanım: nonce tabanlı bir İGP

Content-Security-Policy:
  script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';
CSP nasıl kullanılır?

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

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

Sunucu tarafında her istek için yeni bir komut dosyası nonce değeri oluşturun ve aşağıdaki başlığı 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, nonce tabanlı katı İGP'ye iyi bir örnektir. Nasıl kullanıldığını görmek için Geliştirici Araçları'nı kullanın.

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

HTML'nizin statik olarak sunulması veya önbelleğe alınması gerekiyorsa (örneğin, tek sayfalık bir uygulama oluşturuyorsanız) karma tabanlı katı bir 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';

HTML'de, karma tabanlı bir politika uygulamak için komut dosyalarınızı satır içi yapmanız gerekir. Bunun nedeni, çoğu tarayıcının harici komut dosyalarını karma oluşturma işlemini desteklememesidir.

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ı İGP yanıt başlığı bölümündeki "Kaynaklı komut dosyalarını dinamik olarak yükleme" başlıklı makaleyi inceleyin.

CSP Evaluator, İGP'nizi değerlendirmek için iyi bir araçtır. Aynı zamanda, tek seferlik şifre tabanlı katı İGP için de iyi bir örnektir. Nasıl kullanıldığını görmek için Geliştirici Araçları'nı kullanın.

Desteklenen tarayıcılar

CSP hakkında dikkat edilmesi gereken diğer noktalar

Daha fazla bilgi

Güvenilir Türler

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

Trusted Types, DOM XSS'den arındırılmış uygulamalar yazmak, güvenlik incelemesi yapmak ve bu uygulamaları sürdürmek için araçlar sağlar. CSP aracılığıyla etkinleştirilebilirler ve tehlikeli web API'lerinin yalnızca özel bir nesneyi (güvenilir tür) kabul etmesini sağlayarak JavaScript kodunu varsayılan olarak güvenli hale getirirler.

Bu nesneleri oluşturmak için güvenlik politikaları tanımlayabilirsiniz. Bu politikalarda, veriler DOM'a yazılmadan önce güvenlik kurallarının (ör. kaçış veya temizleme) tutarlı bir şekilde uygulandığından emin olabilirsiniz. Bu politikalar, kodda DOM XSS'ye neden olabilecek tek yerlerdir.

Kullanım örnekleri

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;

Güvenilir Türler nasıl kullanılır?

  1. Tehlikeli DOM hedefleri için Trusted Types'ı zorunlu kılma CSP ve Trusted Types üstbilgisi:

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

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

    Elbette, Trusted Types'ı diğer CSP yönergeleriyle birleştirebilirsiniz:

Yukarıdaki nonce tabanlı 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>trusted-types</code> yönergesi (örneğin, <code>trusted-types myPolicy</code>) ayarlayarak izin verilen Trusted Types politika adlarını sınırlayabilirsiniz. Ancak bu zorunlu 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ı uygulama

    Verileri DOM'a yazarken politikayı kullanma:

    // 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. Dizeyle birlikte tehlikeli bir DOM API'si kullanmak hataya neden olur.

Desteklenen tarayıcılar

Daha fazla bilgi

X-Content-Type-Options

Alanınızdan kötü amaçlı bir HTML belgesi sunulduğunda (örneğin, bir fotoğraf hizmetine yüklenen resim geçerli HTML işaretlemesi içeriyorsa) bazı tarayıcılar bunu etkin bir belge olarak değerlendirir ve uygulama bağlamında komut dosyalarının yürütülmesine izin verir. Bu durum, siteler arası komut dosyası çalıştırma hatasına yol açar.

X-Content-Type-Options: nosniff, tarayıcıya belirli bir yanıt için Content-Type üstbilgisinde ayarlanan MIME türünün doğru olduğunu bildirerek bunu önler. Bu üstbilgi, tüm kaynaklarınız için önerilir.

Kullanım örneği

X-Content-Type-Options: nosniff
X-Content-Type-Options'ı kullanma

X-Content-Type-Options: nosniff, sunucunuzdan sunulan tüm kaynaklar için doğru Content-Type üstbilgisiyle birlikte ö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

Browser Support

  • Chrome: 64.
  • Edge: 12.
  • Firefox: 50.
  • Safari: 11.

Source

Daha fazla bilgi

X-Frame-Options

Kötü amaçlı bir web sitesi, sitenizi iFrame olarak yerleştirebiliyorsa bu durum, saldırganların tıklama hırsızlığı ile kullanıcı tarafından istenmeyen işlemler başlatmasına olanak tanıyabilir. Ayrıca, bazı durumlarda Spectre türü saldırılar, kötü amaçlı web sitelerine yerleştirilmiş bir belgenin içeriği hakkında bilgi edinme fırsatı verir.

X-Frame-Options, bir tarayıcının bir sayfayı <frame>, <iframe>, <embed> veya <object> içinde oluşturmasına izin verilip verilmeyeceğini gösterir. Tüm dokümanların diğer dokümanlara yerleştirilmeye izin verip vermediğini belirtmek için bu başlığı göndermesi önerilir.

Kullanım örneği

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

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

Aşağıdaki yapılandırmaların bir iFrame'in yüklenmesini nasıl etkilediğini bu demoda 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 sitenizin diğer web siteleri tarafından yerleştirilmesini engeller.

Başka dokümanlar tarafından yerleştirilmeyi reddetme

X-Frame-Options: DENY
X-Frame-Options: DENY

Web sitenizin, kaynaklar arası web siteleri tarafından yerleştirilmesini engeller.

Yalnızca aynı kaynaklı dokümanlara yerleştirilmesine izin verilir.

X-Frame-Options: SAMEORIGIN

Desteklenen tarayıcılar

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 4.

Source

Daha fazla bilgi

Çapraz Kaynak Kaynak Politikası (CORP)

Bir saldırgan, web tabanlı siteler arası sızıntılardan yararlanarak kaynaklar hakkında bilgi edinmek için başka bir kaynaktan (ör. sitenizden) kaynaklar yerleştirebilir.

Cross-Origin-Resource-Policy, yüklenebileceği web sitelerini belirterek bu riski azaltır. Başlık üç değerden birini alır: same-origin, same-site ve cross-origin. Tüm kaynakların, diğer web siteleri tarafından yüklenmeye izin verip vermediklerini belirtmek için bu başlığı göndermeleri önerilir.

Kullanım örneği

Cross-Origin-Resource-Policy: same-origin
CORP nasıl kullanılır?

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

Aşağıdaki yapılandırmaların, Cross-Origin-Embedder-Policy: require-corp ortamında kaynak yüklemeyi 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

CDN benzeri hizmetlerin, benzer bir etkiye sahip olan CORS üzerinden sunulmadığı sürece kaynaklara cross-origin uygulaması önerilir (genellikle kaynaklar, kaynaklar arası sayfalar tarafından yüklendiğinden).

Cross-Origin-Resource-Policy: cross-origin
Cross-Origin-Resource-Policy: cross-origin

same-origin konumundan yüklenecek kaynakları sınırlayın

same-origin, yalnızca aynı kaynaklı sayfalar tarafından yüklenmesi amaçlanan kaynaklara uygulanmalıdır. Bu kısıtlamayı, kullanıcı hakkında hassas bilgiler içeren kaynaklara veya yalnızca aynı kaynak üzerinden çağrılması amaçlanan bir API'nin yanıtlarına uygulamalısınız.

Bu başlığa sahip kaynakların doğrudan yüklenebileceğini (ör. URL'ye yeni bir tarayıcı penceresinde giderek) unutmayın. Merkezler Arası Kaynak Politikası yalnızca kaynağın diğer web siteleri tarafından yerleştirilmesini engeller.

Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin

same-site konumundan yüklenecek kaynakları sınırlayın

same-site, yukarıdakilere benzer ancak sitenizin diğer alt alan adları tarafından yüklenmesi amaçlanan kaynaklara uygulanması önerilir.

Cross-Origin-Resource-Policy: same-site
Cross-Origin-Resource-Policy: same-site

Desteklenen tarayıcılar

Browser Support

  • Chrome: 73.
  • Edge: 79.
  • Firefox: 74.
  • Safari: 12.

Source

Daha fazla bilgi

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

Saldırganın web sitesi, web tabanlı siteler arası sızıntılardan yararlanarak başka bir site hakkında bilgi edinmek için pop-up penceresinde bu siteyi açabilir. Bazı durumlarda bu durum, Spectre tabanlı yan kanal saldırılarının kullanılabilmesine de yol açabilir.

Cross-Origin-Opener-Policy üstbilgisi, bir dokümanın kendisini window.open() veya rel="noopener" olmadan target="_blank" içeren bir bağlantı aracılığıyla açılan kaynaklar arası pencerelerden yalıtmasına olanak tanır. Sonuç olarak, dokümanın kaynaklar arası açıcıları dokümana referans veremez ve dokümanla etkileşimde bulunamaz.

Kullanım örneği

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

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

Bir belgeyi kaynaklar arası pencerelerden yalıtma

Ayar same-origin, dokümanı kaynaklar arası doküman pencerelerinden yalıtır.

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

Bir belgeyi kaynaklar arası pencerelerden yalıtma ancak pop-up'lara izin verme

same-origin-allow-popups ayarı, bir dokümanın same-origin veya same-origin-allow-popups ile COOP ayarlanmadığı sürece pop-up pencerelerine referans vermeye devam etmesine olanak tanır. Bu, same-origin-allow-popups'nın, pop-up pencere olarak açıldığında dokümanın referans verilmesini engellemeye devam edebileceği ancak kendi pop-up'larıyla iletişim kurmasına izin verebileceği anlamına gelir.

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

Bir belgenin kaynaklar arası pencereler tarafından referans alınmasına izin ver

unsafe-none varsayılan değerdir ancak bu dokümanın çapraz kaynaklı bir pencere tarafından açılabileceğini ve karşılıklı erişimin korunabileceğini açıkça belirtebilirsiniz.

Cross-Origin-Opener-Policy: unsafe-none
Cross-Origin-Opener-Policy: unsafe-none

COOP ile uyumlu olmayan rapor kalıpları

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

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

COOP, yalnızca raporlama modunu da destekler. Böylece, kaynaklar arası dokümanlar arasındaki iletişimi engellemeden rapor alabilirsiniz.

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

Desteklenen tarayıcılar

Browser Support

  • Chrome: 83.
  • Edge: 83.
  • Firefox: 79.
  • Safari: 15.2.

Source

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ğil, merkezler arası kaynaklara erişimi isteyen ve izin veren bir tarayıcı mekanizmasıdır.

Tarayıcılar, varsayılan olarak bir web sayfasının çapraz kaynaklı kaynaklara erişmesini engellemek için aynı kaynak politikasını uygular. Örneğin, kaynaklar arası bir resim yüklendiğinde web sayfasında görsel olarak gösterilse de sayfadaki JavaScript, resmin verilerine erişemez. Kaynak sağlayıcı, CORS'u etkinleştirerek kısıtlamaları gevşetebilir ve diğer web sitelerinin kaynağı okumasına izin verebilir.

Kullanım örneği

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
CORS nasıl kullanılır?

CORS'u nasıl yapılandıracağınızı incelemeden önce istek türleri arasındaki farkı anlamanız faydalı olur. İstek ayrıntılarına bağlı olarak istekler basit istek veya önceden uçuşa hazırlanan istek olarak sınıflandırılır.

Basit istek ölçütleri:

  • Yöntem GET, HEAD veya POST olmalıdır.
  • Özel üst bilgiler yalnızca Accept, Accept-Language, Content-Language ve Content-Type değerlerini içerir.
  • Content-Type, application/x-www-form-urlencoded, multipart/form-data veya text/plain.

Diğer tüm istekler önceden uçuşa hazırlanan istek olarak sınıflandırılır. Daha fazla bilgi için Merkezler Arası Kaynak Paylaşımı (CORS) - HTTP | MDN başlıklı makaleyi inceleyin.

Basit istek

Bir istek basit istek ölçütlerini karşıladığında tarayıcı, istekte bulunan kaynağı belirten bir Origin başlığı içeren kaynaklar arası istek gönderir.

Örnek istek başlığı

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

Örnek yanıt başlığı

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Origin: https://example.com, https://example.com kullanıcısının yanıtın içeriğine erişebileceğini gösterir. Herhangi bir site tarafından okunması amaçlanan kaynaklar bu üstbilgiyi * olarak ayarlayabilir. Bu durumda tarayıcı, isteğin yalnızca kimlik bilgileri olmadan yapılmasını gerektirir.
  • Access-Control-Allow-Credentials: true, kimlik bilgilerini (çerezler) içeren isteklerin kaynağı yüklemesine izin verildiğini gösterir. Aksi takdirde, istekte bulunan kaynak Access-Control-Allow-Origin üstbilgisinde mevcut olsa bile kimliği doğrulanmış istekler reddedilir.

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

Ön test edilmiş istekler

Önceden uçuşa hazırlanan bir isteğin önüne, sonraki isteğin gönderilmesine izin verilip verilmediğini kontrol etmek için bir OPTIONS isteği eklenir.

Ö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, talep edenin sonraki istekte X-PINGOTHER ve Content-Type HTTP üstbilgilerini ayarlamasına olanak tanır.

Örnek yanıt üstbilgileri

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 yapılabileceğini gösterir.
  • Access-Control-Allow-Headers: X-PINGOTHER, Content-Type, sonraki isteklerin X-PINGOTHER ve Content-Type üstbilgilerini içerebileceğini gösterir.
  • Access-Control-Max-Age: 86400, önceden uçuşa hazırlanan isteğin sonucunun 86.400 saniye boyunca önbelleğe alınabileceğini gösterir.

Desteklenen tarayıcılar

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 3.5.
  • Safari: 4.

Source

Daha fazla bilgi

Çapraz Kaynak Yerleştirme Politikası (COEP)

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

Cross-Origin-Embedder-Policy: require-corp, bu kaynaklar CORS veya CORP başlıkları aracılığıyla yüklenmeyi açıkça kabul etmediği sürece dokümanların ve çalışanların resim, komut dosyası, stil sayfası, iframe gibi merkezler arası kaynakları yüklemesini engeller. COEP,Cross-Origin-Opener-Policy bir dokümanı kaynaklar arası izolasyona dahil etmek için kullanılabilir.

Dokümanınız için kökler arası erişimin kapatılmasını etkinleştirmek istediğinizde Cross-Origin-Embedder-Policy: require-corp öğesini kullanın.

Kullanım örneği

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

Örnek kullanımlar

COEP, tek bir require-corp değeri alır. Bu başlığı göndererek tarayıcıya, CORS veya CORP üzerinden etkinleştirilmeyen kaynakların yüklenmesini engelleme talimatı verebilirsiniz.

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

Aşağıdaki yapılandırmaların kaynak yüklemeyi nasıl etkilediğini bu demoda deneyebilirsiniz. Kaynakların yüklenmesini nasıl etkilediklerini görmek için Cross-Origin-Embedder-Policy açılır menüsü, Cross-Origin-Resource-Policy açılır menüsü ve Yalnızca Rapor onay kutusu gibi seçenekleri değiştirin. Ayrıca, engellenen kaynakların bildirilip bildirilmediğini görmek için raporlama uç noktası demosunu açın.

Kaynaklar arası yalıtımı etkinleştirme

Cross-Origin-Embedder-Policy: require-corp ile birlikte Cross-Origin-Opener-Policy: same-origin göndererek kaynaklar arası erişime kapalı web sitelerini etkinleştirin.

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

COEP ile uyumlu olmayan kaynakları bildirme

COEP'nin neden olduğu engellenen kaynaklarla ilgili raporları Reporting API ile alabilirsiniz.

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

COEP, yalnızca rapor modunu da destekler. Böylece kaynakların yüklenmesini engellemeden rapor alabilirsiniz.

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

Desteklenen tarayıcılar

Browser Support

  • Chrome: 83.
  • Edge: 83.
  • Firefox: 79.
  • Safari: 15.2.

Source

Daha fazla bilgi

HTTP Strict Transport Security (HSTS)

Düz HTTP bağlantısı üzerinden yapılan iletişim şifrelenmediği için aktarılan verilere ağ düzeyinde dinleme yapan kişiler erişebilir.

Strict-Transport-Security üstbilgisi, tarayıcıya siteyi HTTP kullanarak hiçbir zaman yüklememesi ve bunun yerine HTTPS kullanması gerektiğini bildirir. Bu ayar yapıldıktan sonra tarayıcı, üstbilgide tanımlanan süre boyunca yönlendirme olmadan alana erişmek için HTTP yerine HTTPS kullanır.

Kullanım örneği

Strict-Transport-Security: max-age=31536000
HSTS'yi kullanma

HTTP'den HTTPS'ye geçen tüm web siteleri, HTTP ile bir istek alındığında Strict-Transport-Security başlığıyla yanıt vermelidir.

Strict-Transport-Security: max-age=31536000

Desteklenen tarayıcılar

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 7.

Source

Daha fazla bilgi

Daha fazla bilgi