首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    sanitizer工具集

    sanitizer工具集的介绍 Sanitizers是谷歌发起的开源工具集,包括了Address Sanitizer, undefined behavior Sanitizer, Thread Sanitizer , Leak Sanitizer。 GCC从4.8版本开始支持Address sanitizer和Thread Sanitizer,4.9版本开始支持Leak Sanitizer和undefined behavior Sanitizer。 Leak Sanitizer(LSan): 检测内存的LeakSanitizer是集成在Address Sanitizer中的一个相对独立的工具,它工作在检查过程的最后阶段。 #include <sanitizer/asan_interface.h> __sanitizer_set_report_path("asan.log") 在指定的目录会生成一个asan.log.pid

    1.8K20编辑于 2022-11-17
  • 来自专栏代码手工艺人

    LLVM 工具系列 - Address Sanitizer 实现原理(2)

    上篇文章 「Address Sanitizer 基本原理介绍及案例分析」里我们简单地介绍了一下 Address Sanitizer 基础的工作原理,这里我们再继续深挖一下深层次的原理。 . = *address; // 读操作 当开启 Address Sanitizer 之后, 运行时库将会替换掉 malloc 和 free 函数,在 malloc 分配的内存区域前后设置“投毒”(poisoned

    1.1K20编辑于 2023-01-08
  • 来自专栏字节流动

    Android Address Sanitizer (ASan) 原理简介

    ---- 本文介绍Android上定位native代码野指针/数组越界/栈踩踏的终极武器—-Address Sanitizer(asan) 和 Hardware assisted Address Sanitizer Address Sanitizer 基本原理 程序申请的每 8bytes 内存映射到 1byte 的 shadown 内存上。 这样就不会与app的申请内存区域重叠,于是有: ShadowByteAddr = (AppMemAddr >> 3) + Offset ---- Hardware assisted address sanitizer

    6.4K31发布于 2021-06-09
  • 来自专栏魔术师卡颂

    Sanitizer:给你的DOM消消毒

    本文内容来自Safe DOM manipulation with the Sanitizer API[1] 转义与消毒 假设,我们想将这样一段HTML字符串插入DOM: const str = "<img 这种直接移除HTML字符串中有害的代码(比如<script>)的方式被称为sanitize(消毒) 需要用到一个API——Sanitizer[2]。 首先我们通过Sanitizer构造实例: const sanitizer = new Sanitizer(); 调用实例的sanitizeFor方法,传入容器元素类型以及要消毒的HTML字符串: sanitizer.sanitizeFor 参考资料 [1] Safe DOM manipulation with the Sanitizer API: https://web.dev/sanitizer/ [2] Sanitizer: https ://wicg.github.io/sanitizer-api/ [3] DOMPurify: https://github.com/cure53/DOMPurify

    1K10发布于 2021-10-25
  • 来自专栏葡萄城控件技术团队

    JavaScript Sanitizer API:原生WEB安全API出现啦

    Sanitizer API简介 Sanitizer API可以让浏览器直接从网站动态更新的标记中删除恶意代码。 使用Sanitizer API有以下三个优点: 减少Web应用程序中跨站点脚本的攻击次数 保证HTML输出内容在当前用户代理中安全使用 Sanitizer API 的可用性很强 Sanitizer API Sanitizer API的使用 Sanitizer API使用Sanitizer()方法构造函数,Sanitizer类进行配置。 = new Sanitizer() // Our Sanitizer // We want to insert the HTML in user_string into a target element const user_input = `Hello There` const sanitizer = new Sanitizer

    1K20编辑于 2021-12-04
  • 来自专栏以终为始

    【论文速读 | USENIX Security‘2022】Debloating Address Sanitizer

    研究内容/创新方法 系统性分析:对 ASan 的运行时活动、状态进行了详细的分类和测量,识别出 sanitizer 检查是导致高开销的主要原因。 sanitizer 检查即 ASan 在运行时进行的一系列内存访问检查。 "sanitizer 检查" 通常包括以下步骤: 影子内存分配:ASan 分配一块影子内存区域,用于记录应用程序使用的内存状态。 本文提出了 ASan- 工具:它集成了多种优化措施,旨在减少 sanitizer 检查,从而降低开销。 方法:通过控制流遍历和基本常量传播,识别出可以证明是界限内的堆或全局变量访问,然后移除它们的 sanitizer 检查。

    46710编辑于 2024-06-09
  • 来自专栏代码手工艺人

    LLVM 工具系列 - Address Sanitizer 基本原理介绍及案例分析(1)

    Address Sanitizer 介绍 LLVM 提供了一系列的工具帮助 C/C++/Objc/Objc++ 开发者检查代码中可能的潜在问题,这些工具包括 Address Sanitizer,Memory Sanitizer,Thread Sanitizer,XRay 等等, 功能各异。 本篇主要介绍可能是最常用的一个工具 Address Sanitizer,它的主要作用是帮助开发者在运行时检测出内存地址访问的问题,比如访问了释放的内存,内存访问越界等。 读操作 Address Sanitizer 的工作依赖编译器运行时库,当开启 Address Sanitizer 之后, 运行时库将会替换掉 malloc 和 free 函数,在 malloc 分配的内存区域前后设置 ,因此通常只在 Debug 模式或测试场景下打开 更详细的原理参考第二篇 // TODO 如何开启 Address Sanitizer 默认 clang 是不打开 Address Sanitizer

    3.4K30编辑于 2023-01-08
  • 来自专栏giantbranch's blog

    试用clusterfuzzlite

    address 假如没问题说明build.sh写得没问题,环境库依赖也没问题 通过运行 check_build 命令查找要修复的常见构建问题 这将检查您的模糊测试目标是否使用正确的sanitizer编译 $ python infra/helper.py check_build --external $PATH_TO_PROJECT --sanitizer <address/undefined/memory github-token: ${{ secrets.GITHUB_TOKEN }} sanitizer: ${{ matrix.sanitizer }} # Optional sanitizer: ${{ matrix.sanitizer }} - name: Run Fuzzers (${{ matrix.sanitizer }}) id: run sanitizer: ${{ matrix.sanitizer }} upload-build: true .github/workflows/cflite_cron.yml name:

    1K00编辑于 2024-12-31
  • 来自专栏code秘密花园

    告别 XSS!新的 W3C 提案助你安全操作 DOM

    Sanitizer API 的目标就是提供这样的处理作为用于浏览器的标准API。 src="" onerror=alert(0)>` const sanitizer = new Sanitizer() $div.setHTML(user_input, sanitizer) // < = new Sanitizer() sanitizer.sanitizeFor("div", user_input) // HTMLDivElement

    自定义配置 Sanitizer allowElements:Sanitizer 应保留的元素名称。 blockElements:Sanitizer 应删除的元素名称,同时保留其子元素。 dropElements:Sanitizer 应移除的元素名称及其子元素。

    98820发布于 2021-10-19
  • 来自专栏一“技”之长

    Clang代码覆盖率检测(插桩技术)

    为初始化回调,通过其中参数可以获取到符号个数,__sanitizer_cov_trace_pc_guard是插桩函数,每个代码块开始调用时,都会首先调用此插桩函数。 __sanitizer_cov_trace_pc:0x6000019241f0 -[SceneDelegate window] 0x105f5e200 __sanitizer_cov_trace_pc __sanitizer_cov_trace_pc:0x600001b1ffc0 -[SceneDelegate window] 0x105f5e200 __sanitizer_cov_trace_pc __sanitizer_cov_trace_pc:0x7fec54f08490 -[ViewController viewDidLoad] 0x105ffa2c8 __sanitizer_cov_trace_pc_indirect __sanitizer_cov_trace_pc_indirect:0x7fff201833c0 -[ViewController log] 0x105f5dab0 __sanitizer_cov_trace_pc

    2K50编辑于 2022-06-20
  • 来自专栏TBOOX开源工程

    Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试

    而我们可以通过开启 build.sanitizer.address 策略,就可以快速全局启用它,这会使得编译出来的程序,直接支持 ASan 检测。 例如,我们可以通过命令行的方式去启用: $ xmake f --policies=build.sanitizer.address 也可以通过接口配置去全局启用: set_policy("build.sanitizer.address 检测,例如: set_policy("build.sanitizer.address", true) set_policy("build.sanitizer.undefined", true) 或者 $ xmake f --policies=build.sanitizer.address,build.sanitizer.undefined 除了 Asan,我们还提供了其他类似的 policies build.sanitizer.thread build.sanitizer.memory build.sanitizer.leak build.sanitizer.undefined 运行前自动构建

    60030编辑于 2023-09-28
  • 来自专栏技术杂记

    Ruby on Rails 基础(4)

    -1.6.7.2 Fetching: loofah-2.0.3.gem (100%) Successfully installed loofah-2.0.3 Fetching: rails-html-sanitizer -1.0.3.gem (100%) Successfully installed rails-html-sanitizer-1.0.3 Fetching: rails-deprecated_sanitizer -1.0.3.gem (100%) Successfully installed rails-deprecated_sanitizer-1.0.3 Fetching: rails-dom-testing -1.0.3 Installing ri documentation for rails-html-sanitizer-1.0.3 Parsing documentation for rails-deprecated_sanitizer , rails-deprecated_sanitizer, rails-dom-testing, rack-test, erubis, builder, actionview, actionpack,

    2.2K10发布于 2021-11-25
  • 来自专栏code秘密花园

    Chrome 最近带来了哪些有意思的新东西?

    API 在我之前的文章中有介绍过 Sanitizer API 提案: 告别 XSS! Sanitizer API 可以让我们将任意字符串安全地插入到页面中。如果要动态渲染一段富文本,我们可以创建一个新的 Sanitizer 实例。 然后,调用 setHTML() 方法插入经过 XSS 清理的内容: const mySanitizer = new Sanitizer(); const user_input = ``; elem.setHTML(user_input, { sanitizer: mySanitizer }); const config = { allowElements allowComments: true }; // sanitized result is customized by configuration const mySanitizer = new Sanitizer

    67320编辑于 2023-01-09
  • 来自专栏Dotnet9

    介绍这个库:C# Blazor中显示Markdown文件

    注入组件 Program.cs builder.Services.AddScoped<IHtmlSanitizer, HtmlSanitizer>(x => { // Configure sanitizer rules as needed here. // For now, just use default rules + allow class attributes var sanitizer = new HtmlSanitizer(); sanitizer.AllowedAttributes.Add("class"); return sanitizer; }); 引用命令空间

    67130编辑于 2022-03-26
  • 来自专栏云鼎实验室的专栏

    CFI技术新探索,struct_san今日登场

    CFI * Intel CET 基于硬件的只读影子调用栈 * ARM V8.3a Pointer Authentication("signed return address") 二、struct sanitizer 所以我们提出了struct-sanitizer(struct_san)这种新的控制流完整性检测机制。 三、实现原理 struct_san工作原理如下: struct san 通过对在结构体里的函数调用前加入校验函数__sanitizer_struct_guard__(),来验证此函数指针是否属于当前结构体实例 __sanitizer_struct_guard__()在调用时会检测传入的struct和函数指针是否在shadow memory中,如果不在则抛出一个ud2异常,否则返回函数指针。 https://github.com/YunDingLab/struct_sanitizer END 更多精彩内容点击下方扫码关注哦~    云鼎实验室视频号   一分钟走进趣味科技      -

    81840发布于 2021-10-29
  • 来自专栏各类技术文章~

    iOS性能优化之启动优化

    运行项目,打印以下内容: INIT: 0x100bbd4c0 0x100bbd4f8 复制代码 打印来自__sanitizer_cov_trace_pc_guard_init函数 通过for代码中的循环 方法调用 我们会发现一个现象,项目中每一个方法和函数的调用,都会触发__sanitizer_cov_trace_pc_guard的断点,并且由当前执行的方法/函数调用 写入测试代码 void __sanitizer_cov_trace_pc_guard (uint32_t *guard) { NSLog(@"__sanitizer_cov_trace_pc_guard"); } - (void)touchesBegan:(NSSet<UITouch touchesBegan方法执行 __sanitizer_cov_trace_pc_guard test函数执行 __sanitizer_cov_trace_pc_guard Block执行 (uint32_t *guard) { NSLog(@"__sanitizer_cov_trace_pc_guard"); if (!

    2.4K11发布于 2021-10-22
  • 来自专栏iOS小生活

    启动优化(二)——二进制重排

    那么___sanitizer_cov_trace_pc_guard_init和___sanitizer_cov_trace_pc_guard是什么东西呢? 在官方文档的Example中轻而易举找到了___sanitizer_cov_trace_pc_guard_init和___sanitizer_cov_trace_pc_guard。 编译成功之后我们就来研究下这两个函数,首先来看一下__sanitizer_cov_trace_pc_guard_init函数: void __sanitizer_cov_trace_pc_guard_init 接下来再来看一下__sanitizer_cov_trace_pc_guard函数: void __sanitizer_cov_trace_pc_guard(uint32_t *guard) { if 现在来到__sanitizer_cov_trace_pc_guard函数里面: void __sanitizer_cov_trace_pc_guard(uint32_t *guard) { if (

    2.2K51发布于 2021-04-16
  • 来自专栏代码GG之家

    android native内存检测方案(二)

    sanitizer 例子 我们编写一个 android.mk 文件,内容为: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) #优化,加入 AddressSanitizer LOCAL_MODULE:= sanitizer-status LOCAL_MODULE_TAGS := debug #这三行是后面的 UndefinedBehaviorSanitizer 要加的参数 添加c代码 sanitizer-status.c 内容为: #include <stdlib.h> int main() { char *x = (char*)malloc(10 * sizeof(char /system/bin/ 运行此 sanitizer-status,出现最终效果,检测出来当前有使 用了释放的内存. Kernel Address Sanitizer 参考文档 https://www.ibm.com/developerworks/cn/linux/1608_tengr_kasan/index.html

    5K100发布于 2018-02-02
  • 来自专栏啄木鸟软件测试

    软件安全性测试(连载5)

    l OWASP JAVA HTML Sanitizer,包括。 Ø Sanitizer.FORMATTING.sanitize(html)。 Ø Sanitizer.BLOCKS.sanitize(block)。 Ø Sanitizer.STYLES.sanitize(attribute)。 Ø Sanitizer.LINKS.sanitize(link)。 Ø Sanitizer.TABLES.sanitize(html)。 Ø Sanitizer.IMAGES.sanitize(img)。 l AnjularJS SCE:这是Google开发并维护的一套JavaScript框架,包括。 l HTML过滤,工具OWASP Java HTML Sanitizer。 l Cookie设置HTTPOnly。 l 启用CSP策略。 l 添加X-XSS-Protection响应头。

    1.4K20发布于 2019-12-23
  • 来自专栏FreeBuf

    通过扩展指令增强基于覆盖引导的模糊测试

    Clang编译器中很重要的一个工具就是数据清洗器(Sanitizer),Sanitizer可以被视作一种安全库或工具,可以通过检查目标代码来自动检测安全漏洞。 启用了Sanitizer之后,编译器会自动检查编译后的代码是否存在安全问题。 然而,正如我们接下来会给大家演示的那样,我们可以使用Sanitizer接口来为安全评估提供更多有价值的信息。 因此 ,我们还需要像之前一样在编译代码之前更新__sanitizer_cov_trace_pc_guard()函数。 如果我们仅仅依赖于Sanitizer来检测堆栈记录的话,我们将无法在输出中看到存在漏洞的函数名称: $ ./build/bin/jerry .

    58000编辑于 2024-05-27
领券