Bütünlük ve çapraz -origin özellikleri nelerdir?


364

Bootstrapcdn son zamanlarda bağlantılarını değiştirdi. Şimdi şöyle görünüyor:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" 
rel="stylesheet" 
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" 
crossorigin="anonymous">

Ne integrityve crossoriginortalama niteliklerini? Stil sayfasının yüklenmesini nasıl etkiler?

Yanıtlar:


237

Her iki nitelik de Alt Kaynak Bütünlüğünü uygulamak için Bootstrap CDN'ye eklenmiştir .

Alt Kaynak Bütünlüğü, kullanıcı aracılarının getirilen bir kaynağın beklenmedik bir manipülasyon olmadan teslim edildiğini doğrulayabileceği bir mekanizma tanımlar Referans

Dürüstlük özniteliği , tarayıcının, kaynak değiştirilmişse kodun hiçbir zaman yüklenmediğinden emin olmak için dosya kaynağını denetlemesine izin vermektir.

Crossorigin niteliği , 'aynı kaynaktan' yüklenmediğinde artık SRI kontrolünün bir gereği olan 'CORS' kullanılarak bir istek yüklendiğinde mevcuttur. Crossorigin hakkında daha fazla bilgi

Bootstrap CDN'lerinin uygulanması hakkında daha fazla bilgi


2
Sadece w3c html doğrulayıcı kullanıldı ve "bütünlük" özelliğini kullanırken bu mesajı aldım:Attribute integrity not allowed on element link at this point.
Tomas Gonzalez

9
@TomasGonzalez w3c aracının henüz SRI desteğini içerecek şekilde güncellenmediğini güvenli bir şekilde kabul edebileceğinizi düşünüyorum
Josh_at_Savings_Champion

5
Bilginize: Doğrulayıcıya da bir hata gönderdi
jonathanKingston

72
W3C HTML Denetleyicisi'nin (diğer bir şekilde doğrulayıcı) burada tutucusu. Evet, üzgünüm, dama henüz bu integrityözellik hakkında hiçbir şey bilmiyor . Ancak yakında github.com/validator/validator/issues/151 adresinde istendiği gibi destek ekleyeceğim . Bu nedenle, indiğinde bir bildirim almak için bu konuya abone olmak isteyebilirsiniz.
sideshowbarker

7
OnlineWebCheck.com özelliği desteklemektedir integrity(ben bu denetleyicinin koruyucusuyum ).
Albert Wiersch

113

bütünlük - tarayıcının yürütmesi için eşleştirilmesi gereken bir kaynağın karma değerini (sağlama toplamı gibi) tanımlar. Karma dosyanın değiştirilmemiş olmasını sağlar ve beklenen verileri içerir. Bu şekilde tarayıcı farklı (örneğin kötü amaçlı) kaynaklar yüklemez. JavaScript dosyalarınızın CDN'de saldırıya uğradığı ve bunu bilmenin bir yolu olmadığını hayal edin. Bütünlük özelliği, eşleşmeyen içeriğin yüklenmesini engeller.

Çapraz kaynak ne olursa olsun, geçersiz SRI engellenecektir (Chrome geliştirici araçları). Dürüstlük özniteliği eşleşmediğinde CON-CORS durumunun altında:

resim açıklamasını buraya girin

Bütünlük şu şekilde hesaplanabilir : https://www.srihash.org/ Veya konsola ( link ) yazarak :

openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A

crossorigin - kaynak farklı bir kaynaktan bir sunucudan yüklendiğinde kullanılan seçenekleri tanımlar. (Bkz. CORS (Kaynaklar Arası Kaynak Paylaşımı): https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Tarayıcı tarafından gönderilen HTTP isteklerini etkili bir şekilde değiştirir. “Crossorigin” özniteliği eklenirse - orijin: <ORIGIN> anahtar / değer çifti, aşağıda gösterildiği gibi HTTP isteğine eklenecektir .

resim açıklamasını buraya girin

crossorigin "anonim" veya "kullanım kimlik bilgileri" olarak ayarlanabilir. Her ikisi de isteğe orijin: ekleyecektir . Ancak ikincisi kimlik bilgilerinin kontrol edilmesini sağlayacaktır. Etikette crossorigin özelliği olmaması, kaynağı olmayan bir anahtar / değer çifti göndermeye neden olmaz.

CDN'den “kullanım kimlik bilgileri” istendiğinde bir örnek:

<script 
        src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
        integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" 
        crossorigin="use-credentials"></script>

Çapraz-orijinal yanlış ayarlanmışsa, tarayıcı isteği iptal edebilir.

resim açıklamasını buraya girin

Bağlantılar
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Eleman / link

Bloglar
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity


6
Çok faydalı bir cevap!
Emiel Koning

4
Cevabınız için teşekkürler. Teknik detayları seviyorum!
Anh Tran

Dosyanın bütünlüğünün henüz manipüle edilmemiş olup olmadığını nasıl anlayabiliriz? Herhangi bir tavsiye?
vadi taslim

@ yon.fun: lütfen kendi bağlantılarınızı eklemek için düzenleme önermeyin. İçeriğiniz değerli olsa bile, burada olası spam'lara karşı oldukça hassasız.
halfer

Aynı kökene sahip kaynaklar için SRI eklemeniz gerekir mi, evet ise neden?
Void

1

Teknik olarak, Dürüstlük özniteliği buna yardımcı olur - veri kaynağının doğru bir şekilde doğrulanmasını sağlar. Yani, tarayıcının sadece doğru kaynak dosyadaki sayıları CDN sunucusunda bulunan kaynak dosya tarafından istenen miktarlarla doğrulamasına izin verir.

Bu kaynağın şifrelenmiş karma değeri ve tarayıcıda önceden tanımlanmış bir değerle kontrol edilmiş uyumluluğu durumunda kod biraz daha derinleşir - kod yürütülür ve kullanıcı isteği başarıyla işlenir.

Crossorigin özelliği, geliştiricilerin web sitesi kodunu kötü amaçlı komut dosyalarından koruyarak CDN performans oranlarını optimize etmelerine yardımcı olur.

Crossorigin, sitenin program kodunu çerezleri indirmeden veya kimlik doğrulama prosedürünü gerçekleştirmeden anonim modda indirir. Bu şekilde, siteyi belirli bir CDN sunucusuna ilk kez yüklediğinizde ağ verilerinin adresleri kolayca değiştirebileceği kullanıcı verilerinin sızmasını önler.

Kaynak: https://yon.fun/what-is-link-integrity-and-crossorigin/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.