这是我参与「第四届青训营 」笔记创作活动的第2天
了解web安全
随着互联网的兴起,基于web互联网的应用越来越广泛,很多平台都是建立在web平台上,至此,这也引起了‘黑客’们的关注,利用网站的漏洞和其他方式(xss、sql注入、csrf等)操作网站或窃取网站重要数据,更严重的还有在网站中植入恶意代码,攻击客户端。所以在这里一起了解下web安全相关知识,作出相应的防范。
两个角度看web安全
- 假如你是一个hacker--攻击
- 假如你是一个开发者--防御
攻击
XSS-跨站脚本攻击
攻击者通过一种方式把恶意脚本注入到页面中,后果就是用户的隐私会泄露,或者用用户的机器进行挖矿等一系列操作。
特点:1.通常难以从UI上感知(暗地执行脚本);2.窃取用户信息(cookie/token);3.绘制UI(例如弹窗),诱骗用户点击/填写表单
类别:1.存储型:数据会被存入数据库中,危害最大,对全部用户可见;2.反射型:不涉及到数据库,从URL上攻击;3.基于DOM的攻击:不需要服务器的参与,恶意攻击+执行全在浏览器执行;4.基于mutation的攻击:利用了浏览器渲染DOM的特性(独特优化),不同浏览器,会有区别(按浏览器进行攻击)
CSRF-跨站点请求伪造
强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。
特点:1.在用户不知情的前提下;2.利用用户权限(cookie);3.构造指定HTTP请求,窃取或修改用户敏感信息
SQL注入
用户输入的数据未经验证就用来构造SQL查询语句,查询数据库中的敏感内容,绕过认证添加、删除、修改数据、拒绝服务
SSRF-服务端请求伪造
攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击
DOS-拒绝服务
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应
特点:耗时的同步操作,数据库写入,SQL join,文件备份,循环执行逻辑
DDOS-分布式拒绝服务
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求————不搞复杂的,量大就完事了
特点:直接访问IP、任意API、消耗大量宽带(耗尽)
中间人攻击
特点:明文传输,信息篡改不可知,对方身份未验证
防御
XSS
- 永远不要相信用户的提交内容
- 不要将用户提交内容直接转换成DOM
XSS---现成工具
前端:主流框架默认防御XSS;google-closure-library
服务端(Node):DOMPurify
CSP
特点:哪些源(域名)被认为是安全的;来自安全源的脚本可以执行,否则直接抛出错误;对eval+inline script说NO
CSRF
CSRF-token
CSRF-iframe攻击
Injection-注入攻击防御
- 找到项目中查询SQL的地方
- 使用prepared statement
Injection SQL
Regex DOS
Logical Dos
DDOS
传输层-防御中间人
https的一些特性:
- 可靠性:加密--避免了明文传输
- 完整性:MAC验证--确保信息没有被篡改
- 不可依赖性:数字签名--确保了双方身份是可被信任的
总结
web安全时刻存在,我们要保持良好的学习心态,在web安全这一块,了解更多的安全防御知识,来防御web攻击。