问题标签 [sanitizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
981 浏览

python - 使用 html5lib.sanitizer 完全删除坏标签

我正在尝试按照文档中的建议使用 html5lib.sanitizer 来清理用户输入

问题是我想完全删除坏标签,而不仅仅是逃避它们(无论如何这似乎是个坏主意)。

此处补丁中建议的解决方法没有按预期工作(它保留 a 的内部内容<tag>content</tag>)。

具体来说,我想做这样的事情:

输入:

输出:

关于如何实现它的任何想法?我尝试过BeautifulSoup,但似乎效果不佳,并且lxml<p></p>在非常奇怪的地方(例如src attrs 周围)插入标签。到目前为止,html5lib 似乎是最好的选择,如果我可以让它删除标签而不是转义它们。

0 投票
2 回答
986 浏览

ruby-on-rails - 是否有必要在清理 HTML 以防止 XSS 攻击时添加缺少的结束标记?

我正在使用 Sanitize gem 来禁止可用于 XSS 攻击的 HTML 代码。作为副作用,HTML 也会被清理。添加缺少的结束标签。这通常没问题,但在许多情况下,它会更改内容的格式。最终,我想完全清理 HTML,但不想将其作为保护站点免受 XSS 攻击的一部分。

那么,缺少结束标签(例如</font>)是否是潜在的 XSS 攻击?如果没有,我如何阻止 Sanitizer 也尝试清理 HTML?

0 投票
1 回答
718 浏览

android - Intent.ACTION_CALL 的电话号码消毒剂

我有以下 onClickListener():

我的问题是我从网络服务调用中获取电话号码,有些号码为空(没问题,因为吐司出现),有些号码是正常的,一些例子:

但有些数字是二合一的。例子:

对于这个号码,如果我尝试拨打intent.ACTION_CALL,电话会拨打类似的电话:

因为他需要 S=7 h=4 o=6 等等。

我该怎么做才能从字符串中取出 2 个数字,然后让意图选择器选择正确的数字(商店/酒吧)?

PS:来的电话号码列表是动态的,是通过webservice实现的,所以会一直变化

0 投票
3 回答
15302 浏览

macos - OS X 上的 Clang 地址清理程序

我想在 OSX Mountain Lion 上使用 clang address sanitizer,因为 Valgrind 在这个平台上的内存检查有问题。但是当我-fsanitize=address在编译期间(就像我在这个页面上看到的那样: http: //clang.llvm.org/docs/AddressSanitizer.html),我得到了这个错误:clang: error: argument unused during compilation: '-fsanitize=address'

所以,我的问题是如何在 OS X 上使用 Clang Address Sanitizer?如果我不能使用它,我可以使用什么工具?

我已经用 Xcode 下载了 clang,它是最新的。(也许这个版本没有解决它构建的消毒剂)

0 投票
1 回答
288 浏览

ruby-on-rails - 使用 mass_assignment_sanitizer = :strict 进行 Activerecord 正则表达式搜索

我想执行以下搜索请求

但是消毒剂会破坏表情,我明白了:

在这种情况下如何强制跳过消毒?

0 投票
3 回答
3329 浏览

static-libraries - 在静态库配置中使用 Clang sanitizers 配置 autotools 项目?

编辑:如果它的 TLDR,就跳到底部。我在哪里问:如何配置 autotools 项目以使用静态库?

我正在使用几个开源库,并且正在尝试在 Clang 的消毒剂下运行他们的测试套件。要在 Clang sanitizers 下运行,我们需要 (1) 指定一些选项,以及 (2) 根据需要从 Clang 的 Compiler-RT 链接静态库。注意:没有动态库或共享对象。

设置选项很容易:

但是,这将生成一些存档警告(何时AR运行)和链接错误(何时LD运行)带有未定义的符号。该消息将类似于:

我知道需要链接的库。对于我使用的消毒剂,它们是libclang_rt.asan_osx.aand libclang_rt.ubsan_osx.a(或libclang_rt.full-x86_64.alibclang_rt.ubsan-x86_64.aLinux 上)。

为了提供库,我然后导出以下内容。注意:它是LIBS,而不是LDLIBS像大多数其他make相关工具所期望的那样。

这会导致以下configure问题:

看起来config.log,似乎出现了两个问题。首先,路径被从 更改/usr/local/.../Users/jwalton/...。其次,通过从静态库更改为动态库,文件名被屠杀:

在另一次尝试中,我尝试使用LDFLAGS

这会导致类似的错误:

并且config.log

并从结果中删除lib前缀和.a后缀:LIBS

并将结果添加-lLIBS

最后,-L论证是有效的:


毕竟背景:我如何配置一个 autotools 项目以使用静态库?

奖励积分:为什么这么容易的事情变得如此困难?

0 投票
1 回答
1767 浏览

antixsslibrary - 为什么 AntiXss 和 ValidateRequest ="true" 不能同时工作?

我试图避免在我的应用程序中使用横向脚本,但我的要求是我必须将包括脚本在内的数据保存到我的数据库中,但是当显示相同的数据时,它应该作为文本而不是脚本可见,例如:

第1步:我在一个网站中有一个文本框,我试图通过下面的代码注入

测试数据警报('恶意代码');

第 2 步:我将文本的确切内容保存在我的数据库中(注意 validateRequest 设置为 false)。

第3步:然后我在网页中显示脚本不应该执行的内容。

注意:我已经通过 AntiXss 和 Sanitizer 对其进行了限制,但是当我使用 Sanitizer 时,脚本会被 Sanitizer 忽略,谁能给我一个解决方案,将脚本显示为文本(也应该避免执行脚本.)

0 投票
2 回答
8397 浏览

c++ - 我应该如何在clang中使用消毒剂?

如果这是一个非常简单的概念,我很抱歉,但我发现很难获得正确的心态才能正确使用clang.

我编译这个小片段

而且我还编译了我的对象的“正常”版本而不使用消毒剂

我期待一些详细的输出,或者来自控制台的一些错误,但是在检查文件时nm我只发现了 1 个不同

因此,在经过消毒的版本中,有一个未定义的符号,其名称类似于我在编译时使用的消毒剂;但一切都是真正的“沉默”,铿锵前端根本没有输出。

我应该如何使用消毒剂以及正确的工作流程是什么?那个未定义的符号有什么意义?

0 投票
1 回答
608 浏览

asp.net - Html Agility Pack:带有字典参数的简单“消毒剂”

搜索引擎不足以获取有关字典参数形状的信息

我必须在 aDictionary 和 anotherDictionary 参数中输入什么?元素必须是什么?我看到它需要一个字符串到字符串字典数组,但是哪些字符串?都有些什么样的规矩?

让我们假设可信标签只有 <a>、<p>、<div> 和 <ul>-<li>。由于 html 编辑器扩展程序,主要目的是保护站点免受注入。

谢谢你的时间。

0 投票
1 回答
1334 浏览

java - Java 清理 Arraylist 记录建议

我正在寻找如何完成这项任务的想法。所以我将从我的程序如何工作开始。

我的程序读取一个 CSV 文件。它们是用逗号分隔的键值对。

ETC

函数获取一个文件并将其解析为 String[] 的 arrayList。该函数返回 ArrayList。

这是代码,我在其中调用解析文件并传入 CSVFile。

然后,我为未解析的文件创建了另一个 ArrayList。

因此程序会继续清理以逗号分隔的键值对。所以我们首先从记录中的第一个键开始。例如 L1234456。如果无法清理记录,则它将当前键替换为“CouldNOtBeParsed”文本。

接下来我们执行键值对中的第二个键,例如 ygja-3bcb-iiiv-pppp-a8yr-c3d2-ct7v-giap-24yj-3gie

问题是我需要清理两个键值对,分别列出无法清理的键值对和已清理的键值对列表,以便将它们插入数据库。不能打印的将打印给用户。

我考虑过循环思考记录并删除带有“CouldNotBeParsed”文本的记录,这样就可以留下可以解析的记录。我还尝试在 for 循环期间从 Records.remove((i)); 中删除记录。但是,这会弄乱 For 循环,因为如果无法清理第一条记录,则将其删除,在循环的下一次迭代中,它会被跳过,因为记录 2 现在是记录 1。这就是我添加文本的原因。

Atually 我需要两个列表,一个用于已清理的记录,另一个用于未清理的记录。

所以我在想一定有更好的方法来做到这一点。或者同时清理两个 keyValue 对或类似性质的更好方法。建议?