静态代码和动态代码的区别_静态代码扫描方法及工具介绍

2023-11-05

来自:信安之路(微信号:xazlsec)

本文作者:国勇(信安之路特约作者)

静态扫描就是不运行程序,通过扫描源代码的方式检查漏洞,常见的方法也有多种,如把源代码生成 AST(抽象语法树)后对 AST 进行分析,找出用户可控变量的使用过程是否流入到了危险函数,从而定位出漏洞;或者通过正则规则来匹配源代码,根据平常容易产生漏洞的代码定制出规则,把这些规则代入到代码中进行验证来定位漏洞。当然静态扫描由于不运行程序也有好多事情处理不了,如程序通过运算得到的一个结果后,就没办法分析这个结果了,所以需要动态运行程序来解决这个问题,也就是动态扫描,动态扫描可以通过单元测试或人工扫描等方式,下面分别介绍一下 AST 扫描 与 正则匹配两种常见静态扫描方式。

AST(抽象语法树)扫描

d3e5ceb6075e1ec142c0bf85c58bed90.png

此方式把源码生成 AST(抽象语法树),找出用户可控的 source (如 location.hrefdocument.urldocument.documentURI) 是否流入到了敏感的 sink (如 evilnew functionsetTImeoutsetInterval) 中,常见的 source 与 sink 可参考这个文档:

https://docs.google.com/spreadsheets/d/1Mnuqkbs9L-s3QpQtUrOkPx6t5dR3QyQo24kCVYQy7YY/edit#gid=0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态代码和动态代码的区别_静态代码扫描方法及工具介绍 的相关文章

随机推荐

  • 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试五十题

    题记 本博客自2010年10月11日开通以来 已经帮助了一大批人找到工作 特别是连续三年在每一年的9 10月份陪伴了至少三届毕业生找工作的旅程 包括校招中的笔试面试 今年也不会例外 我会在本博客开通3周年之际一如既往的陪伴大家一起成长 本文
  • C++ 智能指针

    一 智能指针特点 智能指针封装了裸指针 内部还是裸指针的调用 智能指针使用RAII特点 将对象生命周期使用栈来管理 智能指针区分了所有权 因此使用责任更为清晰 智能指针大量使用操作符重载和函数内联特点 调用成本和裸指针无差别 二 原子操作
  • ARM汇编.global .extern 和.text

    在ARM汇编中 常搞不清 global和 extern的区别 下面就简要阐述一下这两个的区别 1 gt global global关键字用来让一个符号对链接器可见 可以供其他链接对象模块使用 global start 让 start符号成为
  • 成功解决“谷歌浏览器打开是毒霸网址大全”问题,亲测有效(同样适用被hao123,或者2345浏览器篡改)

    最开始一定要把电脑安装的360和电脑管家之类的退出 第一步 发现问题的存在 在谷歌网址中输入 chrome version 再按enter键 如果返回如图 那说明你的谷歌被hao123浏览器篡改了 如果你返回的蓝色部分是www duba等字
  • python做兼职收入_创业点子 小哥用Python兼职月入过万,用Python做项目有多挣钱?...

    今天我想和大家分享一些Python项目两个主兼职工作 老板想说 无论你是自学或者参加培训班 只要你学好Python 钱自然会来 问题 兼职工作和Python可以用来赚钱吗 1兼职费用够杂项费用 生活费用 在学校我碰巧接管一些外包 嗯 足够的
  • 自定义MVC框架优化

    目录 一 前言 二 优化问题 1 子控制器的初始化配置问题 2 页面跳转优化代码冗余问题 3 优化参数封装问题 三 进行优化 1 解决子控制器初始化配置 2 解决页面跳转的代码冗余问题 3 解决优化参数封装问题 4 中央控制器 一 前言 在
  • 爬下artstation关注的画师信息制作为json文件

    原始网站 https www artstation com Author xiaozhu sai 本文章仅供学习交流 请勿交流梯子以及版权问题 1 爬取数据目的 后续处理 方便后续对各个画师作品的个人下载 个人练习 用户关注 的推荐算法与其
  • kali Linux笔记

    第一章 kali Linux简介 1 Linux操作系统的基础知识 Linux 的起源和发展 了解 Linux 操作系统的起源 发展和主要的发行版 如Linux 内核的诞生 GNU项目的贡献以及常见的 Linux 发行版如Ubuntu De
  • 旋转图像(二维数组的旋转)——LeetCode数组算法题

    旋转图像
  • 利用无人机(手机)和Unity3D软件制作自己的VR全景软件

    市面上做全景的网站和公司有很多 这里不列举了 自己百度一下VR和 全景之类的就会跳出很多 一 全景相片制作 1 无人机制作全景相片 1 1大疆无人机全景相片制作 利用软件DJI GO4中一键720全景完成制作 1 2手动制作720全景完成制
  • OBS斗鱼直播弹幕插件效果

    我没有安装任何OBS插件 一样达到了美化版弹幕效果
  • windows10配置远程桌面多用户同时登录

    目录 一 单用户同时登录 二 多用户同时登录 一 单用户同时登录 系统属性 gt 远程 勾选以下选项 运行 gpedit msc 选择 计算机配置 gt 管理模板 gt Windows组件 gt 远程桌面服务 gt 远程桌面会话主机 gt
  • 秒杀系统架构优化思路

    秒杀系统架构优化思路 上周参加Qcon 有个兄弟分享秒杀系统的优化 其观点有些赞同 大部分观点却并不同意 结合自己的经验 谈谈自己的一些看法 一 为什么难 秒杀系统难做的原因 库存只有一份 所有人会在集中的时间读和写这些数据 例如小米手机每
  • logback.xml文件未被加载

    起初 将logback xml放到了src下面 结果运行后发现只能在控制台输出日志 而不能将日志输出到文件中 于是网上搜索 首先将logback xml root标签中的ALL改为OFF 再次运行程序 看是否能够加载logback xml文
  • Katex的markdown常用语法中一些关于Latex数学符号或公式等的笔记

    文章目录 数学符号 设变量时常用的希腊字母 大小关系 分数 开方 同余 一般符号 二项式 符号上下添加额外信息 上标符号 上下标 上下划线 箭头 集合 省略号 矩阵 小括号形式 中括号形式 行列式 带省略号的形式 带横线或竖线分隔的形式 逻
  • CentOS7编译安装Openvswitch 2.3.0 LTS

    1 安装依赖包 yum y install openssl devel wget kernel devel 2 安装开发工具 yum groupinstall Development Tools 3 添加用户 adduser ovswitc
  • c++ sdk框架_鸿蒙系统中的 JS 开发框架

    今天鸿蒙终于发布了 开发者们也终于 沸腾 了 源码托管在国内知名开源平台码云上 https gitee com openharmony 我也第一时间下载了源码 研究了一个晚上 顺带写了一个 hello world 程序 还顺手给鸿蒙文档提了
  • Flutter lottie开机启动动画

    一款app在启动预加载数据时 少不了采用开机启动动画方案 今天介绍lottie制作开机启动动画 Lottie官网地址 https lottiefiles com 项目源码 Flutter手机端 lottie实现开机启动动画源码 前端元素由前
  • ps背景不变换字_ps怎么把背景上面的字换掉

    1 怎么用ps把图片上的字换掉 换成自己想打的字 1 演示使用的设计软件为photoshop 版本为Adobe photoshop CC2017 以下简称PS 2 打开图像处理软件PS 然后加载一张用于演示换字的图片 3 首先选择工具栏中的
  • 静态代码和动态代码的区别_静态代码扫描方法及工具介绍

    来自 信安之路 微信号 xazlsec 本文作者 国勇 信安之路特约作者 静态扫描就是不运行程序 通过扫描源代码的方式检查漏洞 常见的方法也有多种 如把源代码生成 AST 抽象语法树 后对 AST 进行分析 找出用户可控变量的使用过程是否流