Aynı kaynak politikası, bir kaynaktaki dokümanlar ve komut dosyaları, kaynaklarla etkileşime geçebilir diğer bir kaynak.
Bir tarayıcı, birden fazla sitedeki kaynakları aynı anda yükleyip görüntüleyebilir. Projede aynı anda birden çok sekme açık olabilir veya bir site şuradan birden fazla iframe yerleştirebilir: olabilir. Bu öğeler arasında etkileşim için herhangi bir kısıtlama yoksa bir komut dosyası saldırgan tarafından ele geçirilirse, komut dosyası kullanıcının tarayıcısında her şeyi görünür hale getirmelidir.
Aynı kaynak politikası, kaynaklar arasında yer almalısınız. "Ama bir dakika," “Resimleri yüklüyordum. ve diğer kaynaklardan komut dosyaları her zaman kullanılır." Tarayıcılar, bazı etiketlerin başka bir kaynak ekleyin. Bu politika çoğunlukla geçmişe ait ve sitenizi tıklama korsanlığı gibi güvenlik açıklarına maruz iframe'ler. Kaynaklar arası okumayı kısıtlayabilirsiniz. İçerik Güvenliği kullanarak bu etiketlerin Politika.
Hangi kaynaklar aynı kaynak olarak kabul edilir?
Kaynak, şema (protokol olarak da bilinir. Örneğin,
HTTP veya HTTPS), bağlantı noktası (belirtilmişse) ve ana makine. Üçü de aynı olduğunda
her iki URL için de aynı kaynak kabul edilir. Örneğin,
http://www.example.com/foo
ile aynı kaynak
http://www.example.com/bar
ancak https://www.example.com/bar
değil
çünkü şema farklı.
Nelere izin verilir ve neler engellenir?
Genel olarak, bir merkezler arası kaynak engellendi.
iframe'ler |
X-Frame-Options yönergesine bağlı olarak kaynaklar arası yerleştirmeye genellikle izin verilir ancak kaynaklar arası okuma (iframe'deki bir dokümana erişmek için JavaScript kullanma gibi) uygun değildir.
|
CSS |
Kaynaklar arası CSS, CSS dosyasında <link> öğesi veya @import kullanılarak yerleştirilebilir. Doğru Content-Type başlığı gerekebilir.
|
formlar |
Kaynaklar arası URL'ler, form öğelerinin action özellik değeri olarak kullanılabilir. Bir web uygulaması, kaynaklar arası hedefe form verileri yazabilir.
|
görseller | Çapraz kökenli resimlerin yerleştirilmesine izin verilir. Ancak, kaynaklar arası görüntü verilerinin okunması (ör. JavaScript kullanarak kaynaklar arası bir resimden ikili veriler almak) engellenir. |
multimedya |
Kaynaklar arası video ve ses, <video> ve <audio> öğeleri kullanılarak yerleştirilebilir.
|
alfabe | Kaynaklar arası komut dosyaları yerleştirilebilir. Ancak belirli API'lere erişim (kaynaklar arası getirme istekleri gibi) engellenebilir. |
YAPILACAKLAR: DevSite - Değerlendirme ve Kontrol Etme
Tıklama Saldırısı nasıl önlenir?
![tıklama korsanlığı](https://web.dev/static/articles/same-origin-policy/image/clickjacking-c47718a519b94.png?authuser=5&hl=tr)
"Tıklama korsanlığı" adı verilen bir saldırı bir siteyi iframe
içine yerleştirir ve yer paylaşımlı
farklı bir hedefe yönlendiren şeffaf düğmelerdir. Kullanıcılar kandırılıyor
uygulamanıza veri gönderirken uygulamanıza eriştiklerini
belirler.
Diğer sitelerin sitenizi bir iframe'e yerleştirmesini engellemek için içerik ekleyin
frame-ancestors
ile güvenlik politikası
yönerge
ekler.
Alternatif olarak, HTTP üstbilgilerine X-Frame-Options
ekleyebilirsiniz.
MDN
seçeneğini tıklayın.
Son adım
Umarım tarayıcıların size destekçi olmak için çok çalıştığı için rahatlamışsınızdır. çok önemli bir parçasıdır. Tarayıcılar erişimi engelleyerek güvende olmaya çalışsa da bazı durumlarda web sitenizdeki kaynaklar arası kaynaklara erişmek isteyebilirsiniz. izin verir. Bir sonraki kılavuzda Kaynaklar Arası Kaynak Paylaşımı hakkında bilgi edinin. (CORS) öğrenin ve çapraz kaynak kaynak yüklemenin tarayıcıya nasıl söyleneceğini öğrenin güvenilir kaynaklardan izin verildi.