Web安全基础 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第6天
Web安全基础
1. Web请求流程概览
2. Web中间件
中间件 (Middleware) 是一种连接软件组件和应用的计算机软件,它包括一切服务,一边运行在一台或多台机器上的软件通过网络进行交互,该技术所提供的互操作性推动了一致分布式体系架构的演进,该架构通常用于支持简化那些复杂的分布式程序,它包括Web服务器、事物监控器和消息队列软件。中间件是基础软件的一大类,属于可复用软件的范畴,顾名思义,中间件处于操作系统软件和用户的应用软件的中间。
Web中间件上运行着由Web脚本语言编写的系统。
1、假如你是一个hacker–攻击
Cross-Site Scripting(XSS)
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
XSS主要利用了:
盲目信任用户提交的内容 sring->DOM document.wirte element.innerHTML = anyString SSR(user_data) //伪代码 特点
通常难以从 UI 上感知(暗地里执行脚本) 窃取用户的信息(cookie/token) 绘制UI(例如弹窗),诱骗用户点击/填写表单
2、假如你是一个开发者–防御XSS
原则
- 永远不要相信用户提交的任何类容
- 不要将用户提交内容直接转化成dom
现成工具
-
前端
- 主流框架默认防御XSS
- google-closure-library
-
服务端(node)
- DOMPurify
注意
- string->DOM
原则
- 永远不要相信用户提交的任何类容
- 不要将用户提交内容直接转化成dom
现成工具
-
前端
- 主流框架默认防御XSS
- google-closure-library
-
服务端(node)
- DOMPurify
- string->DOM
- inject
找到项目中查询SQL的地方 使用 prepared statement 原则 最小权限原则 sudo || root 建立允许白名单 + 过滤 rm 对URL类型参数进行协议、域名、ip等限制 访问内网 Regex Dos 不要写出贪婪匹配的方式,特别处理接口的的地方 拒绝使用用户提供的正则表达式
总结:
-
注意⚠️web安全防止被攻击
-
使用的依赖可能会成为最薄弱的一环
- left-pad事件
- eslint-scope事件
- event-stream事件
-
维护好web良好网络环境