本书未发布

2.10. 安全相关

未匹配的标注

XSS

跨站脚本攻击

用户将恶意代码植入到页面中。

防范

转义

CSP

使用CSP减少XSS攻击。

CSP设置禁止内联js和设置js加载来源,js等静态全部写入单独文件。

页面仅保留html,静态资源使用SRI保证内容正确。

webserver添加header或者html页面添加meta实现。

<meta http-equiv="Content-Security-Policy" content="script-src 'self'">

Subresource Integrity (SRI)

SRI翻译为子资源完整性,用来检查阅览器链接中的资源完整性,防止资源被篡改。

例如下列引入js文件:

<script src="https://example.com/example-framework.js" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC" crossorigin="anonymous"></script>

integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC" 声明了该资源的哈希摘要值,算法是sha384,后面是哈希值。

integrity值的格式是算法-哈希值,算法存在sha256、sha384、sha512三种,哈希值就是对应算法计算的值。

如果启用SRI后获得跨域资源,非同源域名就需要添加crossorigin="anonymous"属性运行从其他域名加载资源。

强制SRI

SRI一般都未启用,默认也不是必要,但是可以使用CSP强制启用SRI。

例如添加CSP Header,使script和style强制依赖SRI值,如果资源没有SRI值阅览器就会报错,但是部分阅览器不一定支持

Content-Security-Policy: require-sri-for script style;

Content Security Policy

CSP内容安全策略,用于限制html页面加载资源。

CSP规则在线生成

时间攻击

通过比较密码判断时间推测值

反馈和交流请加群组:QQ群373278915

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~