Sitenizin güvenliğini sağlayabilecek ve en önemli ayrıntıları hızlı bir şekilde arayabilecek başlıklar hakkında daha fazla bilgi edinin.
Bu makalede, hesabınızı korumak için kullanabileceğiniz en önemli güvenlik başlıkları sitenizi ziyaret edin. Web tabanlı güvenlik özelliklerini anlamak için kullanın, web sitenize uygulayabilir ve hatırlatmaya ihtiyaç duyduğunuz zamanlar için referans olarak kullanabilir.
- 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 başlıkları:
- X-Content-Type-Options
- X-Çerçeve Seçenekleri
- Kaynaklar Arası Kaynak Politikası (CORP)
- Kaynaklar Arası Açılış Politikası (COOP)
- HTTP Katı Taşıma Güvenliği (HSTS)
- Gelişmiş özelliklere sahip web siteleri için güvenlik üstbilgileri:
- Kaynaklar Arası Kaynak Paylaşımı (CORS)
- Kaynaklar Arası Yerleştirme Politikası (COEP)
Güvenlik üstbilgilerine geçmeden önce web'deki bilinen tehditler hakkında bilgi edinin ve bu güvenlik üstbilgilerini neden kullanmak istediğinize karar verin.
Sitenizi yerleştirme güvenlik açıklarına karşı koruyun
ve bunun sonucunda genellikle uygulama saldırıya uğrayan uygulamalardır. Yerleştirmeden kaynaklanan en yaygın güvenlik açığı hatalar siteler arası komut dosyası çalıştırma (XSS) yansıtılmış reklam öğeleri de dahil olmak üzere XSS, depolanan XSS, DOM tabanlı XSS ve diğer varyantlar için de geçerli.
XSS güvenlik açığı, genellikle saldırganlara kullanıcı verilerine tam erişim verebilir. uygulama tarafından işlenen ve aynı web'de barındırılan diğer tüm bilgiler kaynak.
Yerleştirmeye karşı geleneksel savunmalarda tutarlı otomatik çıkış kullanılır. tehlikeli JavaScript kullanımından kaçınarak HTML şablon sistemleri API'ler ve barındırma yoluyla kullanıcı verilerini düzgün bir şekilde işleme kullanıcı tarafından denetlenen HTML'yi arındıran bir dosya yükleyin.
- Hangi komut dosyalarının verilebileceğini kontrol etmek için İçerik Güvenliği Politikası'nı (İGP) enjeksiyon riskini azaltmak için uygulamanız tarafından yürütülür.
- Tehlikeli içeriklere aktarılan verilerin arındırılmasını zorunlu kılmak için Güvenilir Türler'i kullanın JavaScript API'leri.
- Tarayıcının şunları yapmasını engellemek için X-Content-Type-Options öğesini kullanın: Web sitenizin kaynaklarının MIME türlerini yanlış yorumlamak yardımcı olur.
Sitenizi diğer web sitelerinden izole etme
Web'in açıklığı, web sitelerinin birbiriyle sizin için uygun şekillerde etkileşim kurmasına olanak tanır. uygulamanın güvenlik beklentilerini ihlal edebilir. Bu, beklenmedik bir şekilde veya başka bir uygulamadan kimlik doğrulaması yapılmış isteklerde bulunmak ya da saldırganın uygulama verilerini değiştirmesine veya okumasına olanak tanıyan bir dokümandır.
Web izolasyonunu olumsuz etkileyen yaygın güvenlik açıkları şunlardır: tıklama korsanlığı, siteler arası sahtecilik isteği (CSRF), siteler arası komut dosyası dahil etme (XSSI) ve çeşitli siteler arası veri sızıntıları.
- Dokümanlarınızın kötü amaçlı bir web sitesidir.
- Kaynaklar Arası Kaynak Politikası (CORP) kaynaklar arası web sitesine dahil edilmesini engeller.
- Web sitenizin kötü amaçlı web sitelerinin etkileşimlerinden korur.
- Kaynaklar Arası Kaynak Paylaşımı'nı (CORS) kullanın ve web sitesi kaynaklarını bulmak için kullanır.
Post-Spectre Web Geliştirme bölümü, bu başlıklarla ilgileniyorsanız.
Güvenli bir şekilde güçlü bir web sitesi oluşturun
Spectre, yüklenen tüm verileri yerleştirir
okunabilir olabilecek şekilde aynı tarama bağlam grubuna
aynı kaynak politikasına rağmen Tarayıcılar özellikleri kısıtlar
güvenlik açığını istismar edebilecek bir program hazırlayıp
"çapraz kaynak izolasyonu". Kökler arası erişime kapalı web siteleri ile
SharedArrayBuffer
gibi güçlü özellikleri kullanın.
- Aşağıdaki işlemler için COOP ile birlikte Kaynaklar Arası Yerleştirme Politikası (COEP) kullanın. kökler arası izolasyonu etkinleştirmenize yardımcı olur.
Sitenize gelen trafiği şifreleyin
Şifreleme sorunları, bir uygulama Google Cloud'da verileri tam olarak şifrelemediğinde gizlice izleyen saldırganların, kullanıcı etkileşimleri hakkında bilgi sahibi olmasını sağlar. göstermeniz gerekir.
Yetersiz şifreleme şu durumlarda ortaya çıkabilir: HTTPS kullanılmadığında,
karma içerik, Secure
olmadan çerezleri ayarlama
özelliğinin
(veya __Secure
öneki),
veya lax CORS doğrulaması
mantığı.
İçerik Güvenliği Politikası (İGP)
Siteler Arası Komut Dosyası Çalıştırma (XSS) bir saldırıdır Burada, web sitesindeki bir güvenlik açığı kötü amaçlı bir komut dosyasının yerleştirilmesine izin veriyorsa yürütüldü.
Content-Security-Policy
, XSS saldırılarını azaltmak için ek bir katman sağlar.
sayfa tarafından yürütülebilecek komut dosyalarını kısıtlama.
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 veya önbelleğe alınmış olarak sunulması gerekiyorsa; örneğin Tek sayfalık uygulama için karma tabanlı katı bir CSP kullanın.
Örnek kullanım: Temel olmayan CSP
Content-Security-Policy:
script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
object-src 'none';
base-uri 'none';
Önerilen kullanımlar
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ındaki her istek için yeni bir komut dosyası tek seferlik rastgele sayı değeri oluşturun ve şu başlıkta:
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 komut dosyalarının nonce
özelliğini
Aynı {RANDOM1}
dizesine <script>
etiket eklendi.
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, CE tabanlı olmayan iyi bir CSP'dir örneğine bakalım. Nasıl kullanıldığını görmek için Geliştirici Araçları'ndan yararlanın.
2. Karma tabanlı katı bir CSP kullanın {: #hash-based-csp}
HTML'nizin statik veya önbelleğe alınmış olarak sunulması gerekiyorsa; örneğin Tek sayfalık uygulama oluştururken 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 komut dosyası uygulamak için politikasına göre, çoğu tarayıcı harici karma oluşturma işlemini komut dosyaları'nı tıklayın.
index.html
<script> ...// your script1, inlined </script> <script> ...// your script2, inlined </script>
Harici komut dosyalarını yüklemek için "Kaynak komut dosyalarını dinamik olarak yükleme" bölümünü okuyun altında Seçenek B: Karma Tabanlı CSP Yanıt Başlığı bölümü.
CSP Değerlendirme Aracı, CSP'nizi değerlendirmenin yanı sıra, aynı zamanda tek seferlik rastgele olmayan katı sıkı bir CSP örneğidir. Nasıl kullanıldığını görmek için Geliştirici Araçları'ndan yararlanı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 (tıklamalara izin vermeniz durumunda ortaya çıkabilecek bir risk) sizin sitenizi yerleştirmesini engellemez. Daha basit bir çözümü tercih ederseniz Yüklenmesini engellemek içinX-Frame-Options
, ancakframe-ancestors
şunu veriyor: yerleşik olarak yalnızca belirli kaynaklara izin veren gelişmiş bir yapılandırma kullanıyorsanız.- Sitenizdeki tüm kaynakların HTTPS üzerinden yüklendiğinden emin olun. Bu artık daha az alakalı hale geliyor: günümüzde çoğu tarayıcı, karma içerik
- Bir İGP'yi yalnızca rapor mod'u seçin.
- Bir CSP'yi sunucu tarafında başlık olarak ayarlayamıyorsanız bunu meta bir meta veri olarak da kapanış etiketinin hemen öncesine yapıştırın. Meta etiketler için salt rapor modunu kullanamayacağınızı unutmayın (yine de bu durum değişebilir).
Daha fazla bilgi
Güvenilir Türler
DOM tabanlı
XSS,
kötü amaçlı verilerin dinamik kodu destekleyen bir havuza aktarıldığı saldırı
eval()
veya .innerHTML
gibi yürütmelidir.
Trusted Types; yazma, güvenlik incelemesi ve bakım işlemleri için araçlar sağlar uygulamalarında DOM XSS'in bulunmadığı anlamına gelir. CSP aracılığıyla etkinleştirilebilir ve Tehlikeli web API'lerinin yalnızca kabul ettiği web API'lerini sınırlayarak varsayılan olarak güvenli JavaScript kodu Özel bir nesne: Güvenilir Tür.
Bu nesneleri oluşturmak için güvenlik politikaları tanımlayabilirsiniz. güvenlik kurallarının (çıkış veya temizleme gibi) tutarlı bir şekilde uygulandığını veri DOM'ye yazmadan önce kullanır. Bu politikalar yalnızca DOM XSS'i kullanıma sokabilecek kodlar.
Ö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, '<').replace(/>/g, '>');
}
});
}
// Assignment of raw strings is blocked by Trusted Types.
el.innerHTML = 'some string'; // This throws an exception.
// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
el.innerHTML = escaped; // '&lt;img src=x onerror=alert(1)&gt;'
Önerilen kullanımlar
-
Tehlikeli DOM havuzları için Güvenilir Türleri zorunlu kılın İGP ve Güvenilir Türler başlığı:
Content-Security-Policy: require-trusted-types-for 'script'
Şu anda
'script'
için kabul edilen tek değerrequire-trusted-types-for
yönergesi.Elbette, Güvenilir Türler'i diğer İGP yönergeleriyle birleştirebilirsiniz:
Yukarıdaki temelli olmayan bir CSP'yi Güvenilir Türlerle birleştirme:
Content-Security-Policy:
script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
object-src 'none';
base-uri 'none';
require-trusted-types-for 'script';
<aside class="note"><b>Not: </b> Ek bir <code>güvenilir türler</code> ayarlayarak izin verilen Güvenilir Türler politika adlarını sınırlayabilirsiniz. yönergesini (örneğin, <code>güvenilir-türler myPolicy</code>) girin. Ancak bu bir gereklilik değildir. </aside>
-
Politika tanımlayın
Politika:
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => {
return str.replace(/\/g, '>');
}
});
}
.
-
Politikayı uygula
DOM'ye veri yazarken bu politikayı kullanın:
// Assignment of raw strings are blocked by Trusted Types.
el.innerHTML = 'some string'; // This throws an exception.</p>
<p>// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML('<img src="x" onerror="alert(1)">');
el.innerHTML = escaped; // '<img src=x onerror=alert(1)>'
require-trusted-types-for 'script'
uygulamasında güvenilir tür kullanmak
gerekir. Tehlikeli herhangi bir DOM API'sinin bir dizeyle kullanılması,
hatası.
Desteklenen tarayıcılar
Daha fazla bilgi
- Güvenilir ile DOM tabanlı siteler arası komut dosyası çalıştırma güvenlik açıklarını önleyin
Türler
- CSP: require-trusted-types-for - HTTP |
MDN
- CSP: güvenilen türler - HTTP |
MDN
- Güvenilir Türler demosu: Geliştirici Araçları Denetleyicisi'ni açıp
neler oluyor
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 resim geçerli HTML işaretlemesi içeriyorsa), bazı tarayıcılar bunu etkin bir doküman olarak kabul eder ve Bunun sonucunda da uygulama bağlamına göre siteler arası komut dosyası çalıştırma hata.
X-Content-Type-Options: nosniff
, tarayıcıya şu komutu vererek engeller:
MIME türü
Content-Type
üstbilgisi, verilen yanıt için doğru. Bu başlık
tüm kaynaklarınız için önerilir.
Örnek kullanım
X-Content-Type-Options: nosniff
Önerilen kullanımlar
Şuradan sunulan tüm kaynaklar için önerilir: X-Content-Type-Options: nosniff
doğru Content-Type
başlığıyla birlikte e-posta sunucunuza eklemeniz gerekir.
![X-Content-Type-Options: "nosniff"](https://web.dev/static/articles/security-headers/image/x-content-type-options-n-7088b3ce0282f.png?authuser=5&hl=tr)
Doküman HTML'si ile gönderilen örnek üstbilgiler
X-Content-Type-Options: nosniff Content-Type: text/html; charset=utf-8
Desteklenen tarayıcılar
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, kullanıcı tarafından istenmeyen eylemlerde tıklama korsanlığı ile ilgili olan, Ayrıca bazı vakalar Spectre-type saldırının kötü amaçlı web sitelerine yerleştirilmiş bir dokümanın içeriği hakkında bilgi sahibi olabilir.
X-Frame-Options
, tarayıcının oluşturulmasına izin verilip verilmeyeceğini belirtir
<frame>
, <iframe>
, <embed>
veya <object>
içinde bir sayfa. Tüm belgeler
izin verilip verilmediğini belirtmek üzere bu
diğer dokümanlar tarafından gömülü olarak sunulur.
Örnek kullanım
X-Frame-Options: DENY
Önerilen kullanımlar
Yerleştirilmek üzere tasarlanmamış tüm dokümanlar X-Frame-Options
üstbilgisini kullanmalıdır.
Aşağıdaki yapılandırmaların bir iframe'in yüklenmesini nasıl etkilediğini bu sayfada
demo'ya gidin. X-Frame-Options
ayarını değiştirin
açılır menüsünü açın ve iframe'i yeniden yükle düğmesini tıklayın.
Web sitenizi başka web sitelerinin yerleştirmelerine karşı korur
Başka dokümanlar tarafından yerleştirilmesini reddetme.
![X-Frame-Seçenekleri: DENY](https://web.dev/static/articles/security-headers/image/x-frame-options-deny-0729b63f3a2e.png?authuser=5&hl=tr)
X-Frame-Options: DENY
Web sitenizi çapraz kaynak web sitelerine yerleştirilmeye karşı korur
Yalnızca aynı kaynaklı dokümanlar tarafından yerleştirilmesine izin ver.
X-Frame-Options: SAMEORIGIN.
Desteklenen tarayıcılar
Daha fazla bilgi
Kaynaklar Arası Kaynak Politikası (CORP)
Saldırganlar başka bir kaynaktan (örneğin, sizin sitenizden) web tabanlı siteler arası kötü niyetli girişimlerden yararlanarak bunlarla ilgili bilgi edinmeye sızıntıları.
Cross-Origin-Resource-Policy
, hedefin %100 olduğunu belirterek
yükleyebileceğiniz anlamına gelir. Başlık şu üç değerden birini alır:
same-origin
, same-site
ve cross-origin
. Tüm kaynaklar
tarafından yüklenmesine izin verilip verilmediğini belirtmek için bu üstbilginin
diğer web sitelerinde görünür.
Örnek kullanım
Cross-Origin-Resource-Policy: same-origin
Önerilen kullanımlar
Tüm kaynakların aşağıdakilerden biriyle sunulması önerilir: üç başlık ekleyin.
Aşağıdaki yapılandırmaların bir
Cross-Origin-Embedder-Policy: require-corp
ortam üzerinde
demo'yu indirin.
Cross-Origin-Resource-Policy açılır menüsünü tıklayın ve
iframe veya Resmi yeniden yükle düğmesini tıklayarak etkiyi görebilirsiniz.
Kaynakların yüklenmesine izin ver cross-origin
CDN benzeri hizmetlerin kaynaklara cross-origin
uygulaması önerilir
(daha önce sunulmamışsa) (genellikle kaynaklar arası sayfalar tarafından yüklendikleri için)
CORS üzerinden
eşleşir.
![Cross-Origin-Resource-Policy: çapraz kaynak](https://web.dev/static/articles/security-headers/image/cross-origin-resource-pol-365b98767bed6.png?authuser=5&hl=tr)
Cross-Origin-Resource-Policy: cross-origin
same-origin
üzerinden yüklenecek kaynakları sınırlayın
same-origin
, yalnızca yüklenmesi amaçlanan kaynaklara uygulanmalıdır
aynı kaynak sayfalara göre de yapılır. Bu strateji,
veya çağrılması planlanan API'nin yanıtları, kullanıcı hakkında bilgiler veya
aynı kaynaktan gelen kullanıcılardır.
Bu başlığa sahip kaynakların doğrudan yüklenebileceğini unutmayın. Örneğin, yeni bir tarayıcı penceresinde URL'ye gidin. Kaynaklar Arası Kaynak Politika, yalnızca kaynağı başka web siteleri tarafından yerleştirilmesine karşı korur.
![Cross-Origin-Resource-Policy: aynı kaynak](https://web.dev/static/articles/security-headers/image/cross-origin-resource-pol-27b9213f10fd2.png?authuser=5&hl=tr)
Cross-Origin-Resource-Policy: same-origin
same-site
üzerinden yüklenecek kaynakları sınırlayın
Yukarıdakine benzer kaynaklara same-site
uygulanması önerilir
ancak sitenizin diğer alt alanları tarafından yüklenmek üzere tasarlanmışlardır.
![Cross-Origin-Resource-Policy: aynı site](https://web.dev/static/articles/security-headers/image/cross-origin-resource-pol-158905cfe6687.png?authuser=5&hl=tr)
Cross-Origin-Resource-Policy: same-site
Desteklenen tarayıcılar
Daha fazla bilgi
Çapraz Kaynak Açıcı Politikası (COOP)
Bir saldırganın web sitesi, bilgi edinmek için pop-up pencerede başka bir siteyi açabilir kullanarak siteler arası sızıntıları. Bazı durumlarda bu, kötü amaçlı yazılımların veya Spectre.
Cross-Origin-Opener-Policy
üstbilgisi, dokümanın
kendisi window.open()
üzerinden açılan çapraz kaynak pencerelerinden veya
rel="noopener"
olmadan target="_blank"
. Sonuç olarak, Google'ın açık kaynak
veya bu belgeye referansta bulunulmaz ve etkileşimde bulunamaz.
gerçekleşebilir.
Örnek kullanım
Cross-Origin-Opener-Policy: same-origin-allow-popups
Önerilen kullanımlar
Aşağıdaki yapılandırmaların bir bu demodaki kaynaklar arası pop-up penceresine göz atın. Her iki doküman için de Cross-Origin-Opener-Policy açılır menüsünü Pop-up pencerede Pop-up aç düğmesini, ardından Gönder > postMessage aracılığıyla iletinin gerçekten teslim edilip edilmediğini kontrol edin.
Bir dokümanı çapraz kaynak pencerelerinden izole etme
same-origin
politikasının ayarlanması, dokümanı çapraz kaynaktan izole edilecek
doküman pencereleri.
![Cross-Origin-Opener-Policy: aynı-kaynak](https://web.dev/static/articles/security-headers/image/cross-origin-opener-polic-2d273fc0106eb.png?authuser=5&hl=tr)
Cross-Origin-Opener-Policy: same-origin
Bir dokümanı çapraz kaynak pencerelerinden izole et ancak pop-up'lara izin ver
same-origin-allow-popups
politikasının ayarlanması, dokümanın
COOP'u same-origin
veya
same-origin-allow-popups
Bu, same-origin-allow-popups
ürününün hâlâ şunları yapabileceği anlamına gelir:
pop-up pencere olarak açıldığında dokümana referans verilmesini önler ancak
kendi pop-up'larıyla iletişim kurmasını sağlar.
![Cross-Origin-Opener-Policy: Aynı-origin-allow-popups](https://web.dev/static/articles/security-headers/image/cross-origin-opener-polic-7311769f30905.png?authuser=5&hl=tr)
Cross-Origin-Opener-Policy: same-origin-allow-popups
Bir dokümana kaynaklar arası pencereler tarafından referans verilmesine izin ver
unsafe-none
, varsayılan değerdir ancak bunun
Doküman, kaynaklar arası pencerede açılabilir ve karşılıklı erişimi korur.
![Cross-Origin-Opener-Policy: secure-none](https://web.dev/static/articles/security-headers/image/cross-origin-opener-polic-6542ad44c7cdc.png?authuser=5&hl=tr)
Cross-Origin-Opener-Policy: unsafe-none
COOP ile uyumlu olmayan rapor kalıpları
COOP, Raporlama API'si.
Cross-Origin-Opener-Policy: same-origin; report-to="coop"
COOP, salt rapor modunu da destekler. Böylece, raporları belgeler arası iletişimi engelliyor olabilir.
Cross-Origin-Opener-Policy-Report-Only: same-origin; report-to="coop"
Desteklenen tarayıcılar
Daha fazla bilgi
Kaynaklar Arası Kaynak Paylaşımı (CORS)
Bu makaledeki diğer öğelerden farklı olarak, Kaynaklar Arası Kaynak Paylaşımı (CORS) erişim isteğinde bulunan ve erişim izni veren bir tarayıcı mekanizmasıdır. kaynaklar arasında yer alıyor.
Varsayılan olarak, tarayıcılar aşağıdaki amaçlar için aynı kaynak politikasını uygular: Bir web sayfasının kaynaklar arası kaynaklara erişmesini engelleyebilirsiniz. Örneğin, web sayfasında gösterilmesine rağmen çapraz kaynak resmi yüklenmiş olmalıdır Görsel olarak, sayfadaki JavaScript'in resmin verilerine erişimi yoktur. Kaynak sağlayıcı kısıtlamaları gevşetebilir ve diğer web sitelerinin okumasına izin verebilir kaynak olarak nitelendirebiliriz.
Örnek kullanım
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
CORS'yi nasıl yapılandıracağınıza bakmadan önce, birbirinden farklıdır. İstek ayrıntılarına bağlı olarak bir istek basit istek veya önceden kontrol edilmiş istek olarak sınıflandırılmalıdır.
Basit bir taleple ilgili ölçütler:
- Yöntem:
GET
,HEAD
veyaPOST
. - Özel üstbilgiler yalnızca
Accept
,Accept-Language
,Content-Language
veContent-Type
. Content-Type
artıkapplication/x-www-form-urlencoded
,multipart/form-data
veyatext/plain
.
Diğer her şey ön yayınlı istek olarak sınıflandırılır. Daha ayrıntılı bilgi için Kaynaklar Arası Kaynak Paylaşımı (CORS) - HTTP | MDN olarak kullanılabilir.
Önerilen kullanımlar
Basit istek
Bir istek basit istek ölçütlerini karşıladığında, tarayıcı bir istek gönderir.
istekte bulunan kullanıcıyı belirten Origin
başlığına sahip kaynaklar arası istek
kaynak.
Ö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
, yanıtın içeriğine erişebilir. Amaçlanan kaynaklar bu başlığı*
olarak ayarlayabilirsiniz. Bu durumda, tarayıcı, yalnızca istekte bulunulmadan isteğin yapılmasını gerektirir kimlik bilgileri ekleyin.Access-Control-Allow-Credentials: true
, Kimlik bilgilerinin (çerezlerin) kaynağı yüklemesine izin verilir. Aksi halde kimliği doğrulanmış istekler, istekte bulunan kaynakAccess-Control-Allow-Origin
üstbilgisinde yer alır.
Basit isteğin bir
Cross-Origin-Embedder-Policy: require-corp
ortam üzerinde
demo'yu indirin. Önce
Kaynaklar Arası Kaynak Paylaşımı onay kutusunu işaretleyin ve Resmi yeniden yükle'yi tıklayın
düğmesini tıklayın.
Yayın öncesi istekler
Önceden yayın yapılmış bir istekten önce bir OPTIONS
isteği gelir ve
bu isteğin gönderilmesine izin verilir.
Ö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
, şu isteğin yapılmasına izin verir:POST
yöntemini kullanın.Access-Control-Request-Headers: X-PINGOTHER, Content-Type
şunlara izin verir: istek sahibininX-PINGOTHER
veContent-Type
HTTP başlıklarını daha yüksek bir talep edebilirsiniz.
Ö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
, sonrakiPOST
,GET
veOPTIONS
yöntemleriyle istek yapılabilir.Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
, sonraki adımları belirtir istekleriX-PINGOTHER
veContent-Type
üstbilgilerini içerebilir.Access-Control-Max-Age: 86400
, önceden yayınlarının sonucunu gösterir isteği 86.400 saniye boyunca önbelleğe alınabilir.
Desteklenen tarayıcılar
Daha fazla bilgi
Kaynaklar Arası Yerleştirme Politikası (COEP)
Spectre tabanlı
kökler arası kaynakları çal, SharedArrayBuffer
veya
performance.measureUserAgentSpecificMemory()
varsayılan olarak devre dışıdır.
Cross-Origin-Embedder-Policy: require-corp
, dokümanların ve çalışanların şunları yapmasını engeller:
Resim, komut dosyası, stil sayfası, iframe ve dosya gibi kaynaklar
(bu kaynaklar açık bir şekilde CORS aracılığıyla yüklenmeyi etkinleştirilmediği sürece)
veya CORP başlıkları ekleyin. COEP, Cross-Origin-Opener-Policy
ile birleştirilebilir
bir dokümanı kaynaklar arası erişime dahil etmek için kullanılır.
Etkinleştirmek istediğinizde Cross-Origin-Embedder-Policy: require-corp
işlevini kullanın
dokümanınız için kaynaklar arası erişime kapalı URL'ler oluşturun.
Örnek kullanım
Cross-Origin-Embedder-Policy: require-corp
Örnek kullanımlar
COEP, require-corp
değerinde tek bir değer alır. Bu üstbilgiyi göndererek şunları yapabilirsiniz:
tarayıcıya,
CORS veya CORP.
![COEP nasıl çalışır?](https://web.dev/static/articles/security-headers/image/how-coep-works-28c183abab5d5.png?authuser=5&hl=tr)
Aşağıdaki yapılandırmaların kaynakların yüklenmesini nasıl etkilediğini bu sayfada demo'ya gidin. Cross-Origin-Embedder-Policy açılır menüsü, Cross-Origin-Resource-Policy açılır menüsü, Yalnızca Rapor onay kutusu vb. 'e göz atın. Ayrıca, raporlama uç noktasını açın. demo'yu ziyaret ederek engellenen kaynakların bildiriliyor.
Kaynaklar arası izolasyonu etkinleştir
Göndererek çapraz kaynak izolasyonunu etkinleştirin
Cross-Origin-Embedder-Policy: require-corp
ve
Cross-Origin-Opener-Policy: same-origin
.
Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Opener-Policy: same-origin
COEP ile uyumlu olmayan kaynakları bildirme
COEP'nin neden olduğu engellenen kaynakların raporlarını Raporlama API'ye gidin.
Cross-Origin-Embedder-Policy: require-corp; report-to="coep"
COEP salt rapor modunu da destekler. Böylece, gerçekte var olan bir işlem olmadan kaynakların yüklenmesini engelliyor.
Cross-Origin-Embedder-Policy-Report-Only: require-corp; report-to="coep"
Desteklenen tarayıcılar
Daha fazla bilgi
HTTP Katı Taşıma Güvenliği (HSTS)
Düz HTTP bağlantısı üzerinden iletişim şifrelenmez, bu da Ağ seviyesindeki meraklıların erişimine açık olacak.
Strict-Transport-Security
başlığı, tarayıcıya hiçbir zaman yüklenmemesi gerektiğini bildirir
bunun yerine HTTPS kullanın. Bu ayar yapıldıktan sonra tarayıcı,
Alana bir süre boyunca yönlendirme olmadan erişmek için HTTP yerine HTTPS
başlıkta tanımlıdır.
Örnek kullanım
Strict-Transport-Security: max-age=31536000
Önerilen kullanımlar
HTTP'den HTTPS'ye geçen tüm web siteleri, HTTP'den HTTPS'ye geçiş yapan
HTTP ile bir istek alındığında Strict-Transport-Security
başlığı.
Strict-Transport-Security: max-age=31536000
Desteklenen tarayıcılar