Subresource Integrity
来源:互联网 发布:国盛证券交易软件 编辑:程序博客网 时间:2024/05/29 15:13
在Bootstrap v4的官网看到了link
和script
有两个不认识的属性integrity
和crossorigin
,长见识的机会又到了
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous"><script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
integrity
和crossorigin
是干什么的?SRI登场!
SRI
SRI,Subresource Integrity 的缩写,中文:子资源完整性,由 Web 应用安全工作组(Web Application Security Working Group)发布。
integrity
属性就表示开启 SRI,支持 SRI 的浏览器有 Chrome 45+ 和 FireFox 43+。
启用 SRI 后,浏览器会根据资源的签名算法(支持 sha256、sha384 和 sha512)对资源进行验证,如果签名不一致,则不执行资源,下面是使用sha384
算法生成https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css
的签名
curl https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css | openssl dgst -sha384 -binary | openssl enc -base64 -ArwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ
integrity
的值是算法-签名
,可以看一下官网 CDN 资源https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css
的integrity
值与我们生成的一样,如果该资源被篡改,则生成的签名就不一样了,浏览器就不会执行该资源。
SRI 要求被请求的资源必须同域,或者加crossorigin="anonymous"
,测试了一下,如果上面的四个 CDN 资源去掉crossorigin="anonymous"
,则 CSS 和 JS 都不会起作用。
参考
https://imququ.com/post/subresource-integrity.html
- Subresource Integrity
- Subresource Integrity 介绍--SRI (Subresource Integrity) 的检查
- 【第1111期】Subresource Integrity 介绍
- data integrity
- Referential Integrity
- QUERY_REWRITE_ INTEGRITY的设置
- 数据完整性 Data Integrity
- HP Integrity Server MP
- Optimized Signal Integrity
- Oracle maintain data integrity
- Integrity Constraints [Oracle]
- QUERY_REWRITE_ INTEGRITY的设置
- Windows Integrity Mechanism Design
- WorkSpace Integrity修复bug
- 【Python Challenge-8】integrity
- Integrity Measurement Architecture (IMA)
- Integrity Measurement Architecture
- Preserving Prefix Integrity
- 贪心算法讲解
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- 提高C++程序运行效率的10个简单方法
- 基于 Hive / ES 金融大数据指标系统
- C++11中的匿名函数(lambda函数,lambda表达式)
- Subresource Integrity
- JavaWeb中项目上有叹号
- 纪念
- sbrk() 函数是干什么的?
- MySQL常用函数之日期时间函数
- PAT甲级练习1029. Median (25)
- EDA软件_Cadence_Allegro 16.6元器件封装制作
- HPUOJ---2017寒假作业--专题-1/I-the Sum of Cube
- 注释镇楼