前端安全相关
浏览器相关的安全
XSS (Cross Site Scripting)跨站脚本攻击
概念
为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
攻击类型
- 通俗来说,在前端上注入可执行的代码。
- 评论区等可输入的地方填入 js 代码。
- URL 上拼接 js 代码
- 技术来说
- 存储型 server 比如 论坛留言板块,评论区,用户私信等
- 反射型 server 比如 修订用户点击URL
- DOM型 browser 由浏览器完成
如何去防范XSS攻击
主旨:防止攻击者提交恶意代码,防止浏览器执行恶意代码
- 对数据进行严格的输入编码 尽量不是html直接拼接直接输出用户提交信息
- CSP (Content-Security-Policy )
内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS (en-US)) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。 - 前端后端双层输入验证
- 开启浏览器的XSS防御
- 验证码策略
CSRF (Cross-site request forgery)跨端请求伪造
攻击步骤
- 受害者登录A域,并保留了登录凭证 cookie;
- 攻击者诱导受害者访问B;
- B域向A域发送请求,浏览器就直接带上A域的cookie;
- A域收到请求,并忠实执行对应操作;
- 攻击者不知情下冒充受害者让A域执行了自己的操作
攻击类型
- Get型 如:img
- Post型 如:自动提交表单
- 诱导用户点击监控
防范CSRF攻击
CSRF 一般都是第三方域,一般攻击者无法获取到cookie信息,只是浏览器自动携带。
- request header上配置 origin referer
- cookie sameSite 设置
- strict:完成禁用第三方cookie
- lax: post img iframe 上不会携带cookie
- None:不设置
- 提交请求的时候附加额外信息 比如:CSRF_TOKEN,双重cookie等
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯。
CSP
内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS (en-US)) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。
HSTS
强制客户端使用HTTPS与服务端建立连接
X-FRAME-OPTIONS
控制当前页面是否可以被嵌入到iframe中。
SRI
子资源完整性 (SRI) 是一种安全功能,允许浏览器验证所获取的文件 (比如,从一个 CDN 内容分发网络) 是无意外操作而交付的。它的工作原理是允许你提供一个获取文件必须匹配的加密哈希。
Referer-Policy
控制referer的携带策略。(就是来源),不是每一个URL都带有Referer,因为直接输入的URL请求是不带。
Node(服务端)相关的安全
本地文件操作
提供一个静态服务,通过请求的参数来返回用户,前端想要的资源 解决方案:一般使用 resolve-path这个库。
ReDos
攻击者利用正则表达式的不规范,回溯执行原理来达到执行卡死效果。
时序攻击
IP Origin / referer headers。
|