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:
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 .
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.
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
Attribute integrity not allowed on element link at this point.