integrity - กำหนดค่าแฮชของทรัพยากร (เช่นการตรวจสอบ) ที่จะต้องมีการจับคู่เพื่อให้เบราว์เซอร์ดำเนินการ แฮชทำให้แน่ใจว่าไฟล์นั้นไม่มีการแก้ไขและมีข้อมูลที่คาดไว้ วิธีนี้เบราว์เซอร์จะไม่โหลดทรัพยากร (เช่นที่เป็นอันตราย) ที่แตกต่างกัน ลองนึกภาพสถานการณ์ที่ไฟล์ JavaScript ของคุณถูกแฮ็คบน CDN และไม่มีทางรู้ได้ แอตทริบิวต์ integrity ป้องกันการโหลดเนื้อหาที่ไม่ตรงกัน
SRI ที่ไม่ถูกต้องจะถูกบล็อก (เครื่องมือสำหรับนักพัฒนาของ Chrome) โดยไม่คำนึงถึงการข้ามจุด ด้านล่างกรณีที่ไม่ใช่ CORS เมื่อแอตทริบิวต์ integrity ไม่ตรงกัน:
ความสมบูรณ์สามารถคำนวณได้โดยใช้: https://www.srihash.org/
หรือพิมพ์ลงในคอนโซล ( ลิงก์ ):
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
crossorigin - กำหนดตัวเลือกที่ใช้เมื่อโหลดทรัพยากรจากเซิร์ฟเวอร์ในแหล่งกำเนิดอื่น (ดู CORS (การแบ่งปันทรัพยากรข้ามแหล่ง) ที่นี่: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ) มันเปลี่ยนคำขอ HTTP ที่ส่งโดยเบราว์เซอร์ได้อย่างมีประสิทธิภาพ หากมีการเพิ่มแอตทริบิวต์“ crossorigin” จะส่งผลให้มีการเพิ่มจุดกำเนิด: <ORIGIN>คู่คีย์ - ค่าลงในคำขอ HTTP ดังที่แสดงด้านล่าง
crossoriginสามารถตั้งค่าเป็น "ไม่ระบุชื่อ" หรือ "ใช้ข้อมูลรับรอง" ทั้งสองอย่างจะส่งผลให้เพิ่มที่มา:ลงในคำขอ หลังอย่างไรก็ตามจะให้แน่ใจว่ามีการตรวจสอบข้อมูลประจำตัว ไม่มีแอตทริบิวต์ crossorigin ในแท็กจะส่งคำขอโดยไม่มีจุดเริ่มต้น: คู่คีย์ - ค่า
นี่เป็นกรณีเมื่อร้องขอ“ use-credentials” จาก 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>
เบราว์เซอร์สามารถยกเลิกการร้องขอได้หากตั้งค่าไขว้ไม่ถูกต้อง
ลิงค์
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / ธาตุ / การเชื่อมโยง
บล็อก
- 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.