Web安全基础|青训营笔记

90 阅读2分钟

Web安全基础 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第6天

Web安全基础

1. Web请求流程概览

image.png

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(例如弹窗),诱骗用户点击/填写表单

image.png

2、假如你是一个开发者–防御XSS

原则

  • 永远不要相信用户提交的任何类容
  • 不要将用户提交内容直接转化成dom

现成工具

  • 前端 

    • 主流框架默认防御XSS
    • google-closure-library
  • 服务端(node) 

    • DOMPurify

注意

  • string->DOM

原则

  • 永远不要相信用户提交的任何类容
  • 不要将用户提交内容直接转化成dom

现成工具

  • 前端 

    • 主流框架默认防御XSS
    • google-closure-library
  • 服务端(node) 

    • DOMPurify

image.png

  • string->DOM

image.png

  • inject

找到项目中查询SQL的地方 使用 prepared statement 原则 最小权限原则 sudo || root 建立允许白名单 + 过滤 rm 对URL类型参数进行协议、域名、ip等限制 访问内网 Regex Dos 不要写出贪婪匹配的方式,特别处理接口的的地方 拒绝使用用户提供的正则表达式

总结:

  • 注意⚠️web安全防止被攻击

  • 使用的依赖可能会成为最薄弱的一环 

    • left-pad事件
    • eslint-scope事件
    • event-stream事件
  • 维护好web良好网络环境