首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加密验证网页要求?

如何加密验证网页要求?
EN

Stack Overflow用户
提问于 2016-04-27 19:34:32
回答 1查看 60关注 0票数 1

如何在HTML?中加密验证网页要求

例如,如果我有一些外部资源,比如图像、样式表,或者(最重要的是)在(可能不受信任的)内容传递网络上的脚本,那么是否有可能在使用之前强制客户端浏览器以加密方式验证下载资源的散列?对此是否有一些HTML属性或URL方案,或者是否需要手动编写一些JavaScript才能完成?

其基本原理是,在HTTPS上提供HTML中的散列可以为CDN-提供额外的防御措施。

与此有关的问题:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-16 14:22:58

截至2016年6月23日,子资源完整性是一项W3C建议,允许您这样做(这里草稿)。根据执行情况报告的说法,它已经在火狐43和Chrome 45中实现。

使用子资源完整性的简单示例如下:

代码语言:javascript
复制
<script src="https://example.com/example.js"
    integrity="sha256-8OTC92xYkW7CWPJGhRvqCR0U1CR6L8PhhpRGGxgW4Ts="
    crossorigin="anonymous"></script>

还可以在完整性字段中指定多个算法--散列对(称为元数据),用空格分隔,忽略无效数据(§3.3.3)。客户端将筛选出最强的元数据值(第3.3.4条),并将实际数据的哈希值与最强元数据值(§3.3.5)集中的哈希值进行比较,以确定资源是否有效。例如:

代码语言:javascript
复制
<script src="https://example.com/example.js"
    integrity="
       md5-kS7IA7LOSeSlQQaNSVq1cA==
       md5-pfZdWPRbfElkn7w8rizxpw==
       sha256-8OTC92xYkW7CWPJGhRvqCR0U1CR6L8PhhpRGGxgW4Ts=
       sha256-gx3NQgFlBqcbJoC6a/OLM/CHTcqDC7zTuJx3lGLzc38=
       sha384-pp598wskwELsVAzLvb+xViyFeHA4yIV0nB5Aji1i+jZkLNAHX6NR6CLiuKWROc2d
       sha384-BnYJFwkG74mEUWH4elpCm8d+RFIMDgjWWbAyaXAb8Oo//cHPOeYturyDHF/UcnUB"
    crossorigin="anonymous"></script>

如果客户端理解SHA256和SHA384,而不理解MD5,那么它会用空格标记integrity属性的值,并将md5-元数据标记作为垃圾丢弃。然后,客户端确定元数据中最强的散列是SHA384,并将它们的值与实际接收的数据的SHA384哈希进行比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36899315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档