web安全 | 青训营笔记

186 阅读5分钟

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

web安全是什么

WEB安全是指WEB应用的安全,比如SQL注入、跨战站脚本、网页挂马等。 网络安全是指对网络的攻击,如蠕虫、病毒、木马等。 你对这个回答的评价是? “百度安全”与“中云网安”分别提出:积极Web安全模型必须是网络安全最新、最先进的方法。

web安全的类型

攻击

XSS,跨站脚本攻击(Cross Site Scripting)

存储型 XSS 攻击

利用漏洞提交恶意 JavaScript 代码,比如在input, textarea等所有可能输入文本信息的区域,输入<script src="http://恶意网站"></script>等,提交后信息会存在服务器中,当用户再次打开网站请求到相应的数据,打开页面,恶意脚本就会将用户的 Cookie 信息等数据上传到黑客服务器。

反射型 XSS 攻击

用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端,这就是反射型 XSS 攻击。 在现实生活中,黑客经常会通过 QQ 群或者邮件等渠道诱导用户去点击这些恶意链接,所以对于一些链接我们一定要慎之又慎。

Web 服务器不会存储反射型 XSS 攻击的恶意脚本,这是和存储型 XSS 攻击不同的地方。

基于 DOM 的 XSS 攻击

基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的。它的特点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。比如利用工具(如Burpsuite)扫描目标网站所有的网页并自动测试写好的注入脚本等。

预防策略:

  1. 将cookie等敏感信息设置为httponly,禁止Javascript通过document.cookie获得

  2. 对所有的输入做严格的校验尤其是在服务器端,过滤掉任何不合法的输入,比如手机号必须是数字,通常可以采用正则表达式.

  3. 净化和过滤掉不必要的html标签,比如:<iframe>, <script>等 ;净化和过滤掉不必要的Javascript的事件标签,比如:onclick, onfocus

  4. 转义单引号,双引号,尖括号等特殊字符,可以采用htmlencode编码 或者过滤掉这些特殊字符

  5. CSP,全称为 Content Security Policy,即内容安全策略。主要以白名单的形式配置可信任的内容来源,在网页中,能够使白名单中的内容正常执行(包含 JS,CSS,Image 等等),而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS),当然,也能够减少运营商劫持的内容注入攻击。

  6. 概念

向客户访问的网站中植入恶意脚本!

  1. 特点
  • 难以自UI上感知
  • 窃取用户信息 cookie | token 等
  • 绘制UI
  1. demo

image.png

  1. 分类
  • Stored XSS 恶意脚本被存在服务器中
  • Reflected XSS
  • DOM-based XSS
  • Mutation-based XSS 基于不同浏览器的渲染细节按浏览器类型进行攻击

CSRF

跨域伪造请求

image.png

GET请求

image.png

POST请求

image.png

SSRF

DoS | Denial of Service

通过构造特定类型请求,导致服务器资源被显著消耗,无法及时响应请求,导致服务崩溃

ReDoS | 基于正则表达式的 DoS

利用正则表达式,如重复匹配的

DDos

短时间内大量僵尸设备同时请求同一IP,耗尽带宽导致服务器崩溃

传输层

中间人攻击

中间人劫持浏览器与服务器的传输,实现窃取信息、修改请求返回等

防御

XSS

永远不要相信用户提交内容

永远不要直接渲染用户提交内容为DOM

前端 - 主流框架 google-closure-library

后端 - node DOMPurify

  • string -> DOM | 使用 DOMParser()
  • 上传 svg
  • Bolb 动态生成 script
  • 自定义跳转链接
  • 自定义样式

CSP | Content Security Policy

仅允许来自安全源的脚本运行

阻止 eval 与 inline1 script 执行

CSRF

检测origin和referer

使用token

iframe请求 | 使用 X-Frame-Options

避免 GET 和 POST 使用为同一接口

同域 SameSite | 设置 Set-Cookie: SameSite=None;

Injection

SQL 预编译

控制权限

建议允许访问清单

限制和检测URL参数

DoS

代码检测和测试

阻止使用正则

DDoS

流量治理

快速自动扩容

非核心服务降级

传输层

防止中间人

使用 HTTPS:可靠性、完整性、不可抵赖性

SRI

哈希算法

阻止静态资源被篡改

Feature Policy | Permission Policy

  • camera
  • autoplay
  • microphone

总结

Web安全,计算机术语,随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。