integritas - mendefinisikan nilai hash sumber daya (seperti checksum) yang harus dicocokkan untuk membuat browser mengeksekusinya. Hash memastikan bahwa file tidak dimodifikasi dan berisi data yang diharapkan. Dengan cara ini browser tidak akan memuat sumber daya yang berbeda (mis. Jahat). Bayangkan sebuah situasi di mana file JavaScript Anda diretas di CDN, dan tidak ada cara untuk mengetahuinya. Atribut integritas mencegah pemuatan konten yang tidak cocok.
SRI tidak valid akan diblokir (alat pengembang Chrome), terlepas dari asal-usulnya. Di bawah kasus NON-CORS ketika atribut integritas tidak cocok:
Integritas dapat dihitung menggunakan: https://www.srihash.org/
Atau mengetik ke konsol ( tautan ):
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
crossorigin - mendefinisikan opsi yang digunakan ketika sumber daya dimuat dari server dengan asal yang berbeda. (Lihat CORS (Berbagi Sumber Daya Silang) di sini: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Ini secara efektif mengubah permintaan HTTP yang dikirim oleh browser. Jika atribut "crossorigin" ditambahkan - itu akan menghasilkan penambahan asal: <ORIGIN> pasangan nilai kunci ke dalam permintaan HTTP seperti yang ditunjukkan di bawah ini.
crossorigin dapat diatur ke "anonim" atau "gunakan-kredensial". Keduanya akan menghasilkan penambahan asal: ke dalam permintaan. Namun yang terakhir akan memastikan bahwa kredensial diperiksa. Atribut crossorigin dalam tag tidak akan menghasilkan pengiriman permintaan tanpa asal: pasangan nilai kunci.
Ini adalah kasus ketika meminta "kredensial penggunaan" dari CDN:
<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>
Peramban dapat membatalkan permintaan jika crossorigin tidak diatur dengan benar.
Tautan
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Elemen / tautan
Blog
- 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.