前言:公司最近严抓网安,使用安全工具扫描项目发现了一下一些关于网安的问题
1. CSP
- “Content-Security-Policy”头缺失
- 风险: 可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
- Content-Security-Policy 响应头缺失或具有不安全策略,这可能会更大程度地暴露于各种跨站点注入攻击之 下
- 解决 html 加入 指明资源来源
2. X-Content-Type-Options
- “X-Content-Type-Options”头缺失或不安全
- 风险: 可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置 可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
- 互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:"text/html"代表html文档,"image/png"是PNG图片,"text/css"是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。
- 例如,我们即使给一个html文档指定Content-Type为"text/plain",在IE8-中这个文档依然会被当做html来解析。利用浏览器的这个特性,攻击者甚至可以让原本应该解析为图片的请求被解析为JavaScript。通过下面这个响应头可以禁用浏览器的类型猜测行为:
- 将服务器配置为使用值为“nosniff”的“X-Content-Type-Options”头
- 解决 axios 增加请求头 axios.defaults.headers.common[‘X-Content-Type-Options’] = ‘nosniff’
3. X-XSS-Protection
- “X-XSS-Protection”头缺失或不安全
- 顾名思义,这个响应头是用来防范XSS的。最早我是在介绍IE8的文章里看到这个,现在主流浏览器都支持,并且默认都开启了XSS保护,用这个header可以关闭它。它有几种配置:
- 0:禁用XSS保护;
- 1:启用XSS保护;
- 1; mode=block:启用XSS保护,并在检查到XSS攻击时,停止渲染页面(例如IE8中,检查到攻击时,整个页面会被一个#替换);
- 浏览器提供的XSS保护机制并不完美,但是开启后仍然可以提升攻击难度,总之没有特别的理由,不要关闭它。
4. SRI (Subresource Integrity) 的检查
- 风险: 在第三方服务器被破坏的情况下,站点的内容/行为将更改。
- 原因: 不支持子资源完整性。
- 固定值: 将每个第三方脚本/链接元素支持添加到 SRI(Subresource Integrity)。 理解: script/style/link 标签增加 integrity 属性 然后打开浏览器会有报错,报错信息有浏览器解析的hash值,直接使用这个值,网上很多现成的网站给你解析的大部分跟浏览器解析不相同,哈希值的有三种类型,sha256、sha384 及 sha512,根据自己的需求使用,一般为 sha384,crossorigin=“anonymous” 的作用是引入跨域脚本
最后
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
2️⃣视频配套资料&国内外网安书籍、文档
① 文档和书籍资料
② 黑客技术
因篇幅有限,仅展示部分资料
3️⃣网络安全源码合集+工具包
4️⃣网络安全面试题
5️⃣汇总
所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~