问题标签 [taint]
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.
svg - 绘制 SVG 后画布“被污染”
已经提出了类似的问题,并且问题的原因很好理解,我要求的是替代方案或解决方法:
我想做的是从画布上获取一个数据 URL,该画布上绘制了一个 SVG 文档。我已经尝试了各种方法,但只要 SVG 靠近画布,IE9 和 Chrome 就不会让我拥有那个 URL。
我试过了:
- Canvg(不支持我需要的一切)
- 将 svg 文件直接绘制到画布上 (content.drawImage(svg, 0 0))
- 创建整个 svg 文档的 base64 字符串,使其成为 an 的源,然后将该图像绘制到画布上。
- 将 svg 保存到文件,设置 src 属性以指向文件(在同一域上),然后将其绘制到画布上
我的想法不多了。
是否有类似的库可以尝试将 svg 栅格化?在绘制之前我是否可以将 SVG 转换为其他东西,这样画布就永远不会知道 SVG 参与其中?是否有一种非常简单的方法可以使用 PHP 或类似的东西在服务器端进行转换?
perl - 内部网站是否需要“污点”模式?
我进来支持的中型内部网站大约有 1/2 的 *.cgi 文件没有“污点”模式。内部网站是否需要“污点”模式?
macos - 在污染模式下读取文件时出错
我正在尝试使用污点模式。我想根据用户输入打开一个文件并打开一个文件来读取数据。下面是我的代码
案例 1)当我使用 perl -w filename.pl input.txt 运行文件时,我能够从文件中读取数据。
案例2)当我改变
并使用 perl -T filename.pl input.txt 运行文件我仍然能够读取数据。
案例3)当我将文件更改为以写入模式打开并以污染模式运行时,我得到正确的输出,
案例两种情况可能有什么问题?或者这是一个正确的行为?
是否允许以污点模式打开文件进行读取?
android - 字符串的污点验证
我开发了一个应用程序,它可以提取 android 的 IMEI 并将其存储在一个字符串中。为了使用 eclipse 验证这个字符串是否被污染,我使用了“getTaintString”,如下所示:
但它给出了以下错误:
污点无法解决
有什么建议么?
perl - 在使用 -T 开关运行时在 DBI::db=HASH(0xa32bd40)->do 方法调用的参数 3 中显示错误不安全依赖项
我在修改文件 show_bug.cgi 时使用 -T 开关运行时在 DBI::db=HASH(0xa32bd40)->do 方法调用的参数 3 中收到错误不安全依赖项
是什么原因?
perl - 在 Centos 6 64 位上从源代码安装 perl/cpan
我正在尝试将 perl 从源代码安装到 CentOS 6 上的本地目录中。我在使用 cpan 安装某些软件包时遇到问题。我通过安装一些开发 rpm 解决了一堆问题,我通过在配置行中告诉 perl CentOS 是 64 位解决了更多问题。但是我在安装 Apache2::TaintRequest 时遇到了问题,我运气不好。过去几天我一直在谷歌搜索和重新编译,所以希望这不是一个愚蠢的问题......
这就是我正在做的事情。
这是我得到的地方,这是输出
我很茫然,任何帮助将不胜感激。谢谢。
java - Java程序的静态污点分析
我不确定这是否是正确的地方,我们将不胜感激。我想为 Java 构建一个静态污点分析工具。我的理解是该工具将从主入口点开始扫描所有 java 文件。对于每一行源代码,它将对其进行解码并执行所需的操作。
例如,
第 1 行声明了一个布尔变量,第 2 行将其转换为字符串。第 1 行会注意到布尔变量“x”已被声明,并在第 2 行被转换为字符串。只有当我检查 toString() 函数并执行所需的操作时,我的工具才会理解它。
我的问题是,我是否需要为 Java 中为布尔类型定义的所有函数编写检查?其他数据类型和其他库函数怎么样?
例如,布尔类型可用的其他一些函数是:
linux-kernel - 看到一些内核污染消息后 printk 将不再工作
全部
我正在使用 linux 内核 2.6.35 在 Fedora14 中开发一个模块。操作系统实际上是在虚拟框中运行的。
我观察到的是,在我对代码进行了一些更改并遇到污染内核警告后,即使我将代码恢复到以前的版本,printk 也将不再工作。然后,如果我只是复制以前的代码以创建另一个具有不同名称的模块,它将再次工作......我不确定它是否是一个错误,但它是可重现的。
以下是运行良好的基本代码。我可以在 /var/log/messages 中看到 printk 消息
嗅探器.c
生成文件
然后我进行了更改,这只是对多文件模块的测试
嗅探器.c
生成文件
proto_handler.c
proto_handler.h
然后,在我制作并运行 insmod 之后,我在 /var/log/messages 中看到了这些消息
嗅探器:模块许可证“未指定”污染内核
由于内核污染而禁用锁定调试
首先,我不知道为什么会显示这些消息,因为我指定了我的许可证。
其次,在看到这些消息后,我再也无法通过运行 insmod 或 rmmod 看到该模块的 printk 的结果,即使我恢复了我的代码。但正如我所说,我可以将以前的代码复制到具有其他名称的模块中,它会再次工作。Linux中有类似黑名单的东西吗?
谁能帮我?非常感谢!
regex - 通过正则表达式进行 Perl 污染
精简版
在下面的代码中,$1
被污染了,我不明白为什么。
长版
我在启用了污点检查模式的 perl v5.14.2 系统上运行Foswiki 。-T
调试该设置的问题后,我设法构建了以下 SSCCE。(注意我编辑了这个帖子,第一个版本更长更复杂,评论仍然指的是那个。)
尽管输入字符串$var
是未污染的并且正则表达式是固定的,但是生成的捕获组$1
是被污染的。我觉得很奇怪。
perlsec 手册对污点和正则表达式有这样的说法:
通过将它们用作散列中的键,值可能不会受到污染;否则绕过污染机制的唯一方法是从正则表达式匹配中引用子模式。Perl 假定如果您使用
$1
,$2
等引用子字符串,那么您在编写模式时就知道自己在做什么。
我想即使输入被污染,输出仍然是未污染的。从未污染的输入观察相反的污染输出,感觉就像 perl 中的一个奇怪的错误。但是,如果阅读更多 perlsec,它也会将用户指向perllocale 的 SECURITY 部分。我们在那里读到:
当使用区域设置生效时,Perl 使用污染机制(参见 perlsec)来标记字符串结果,这些结果变得依赖于区域设置,因此可能是不可信的。以下是可能受语言环境影响的运算符和函数的污染行为的摘要:
比较运算符(、、、和
lt
)[ … ]le
ge
gt
cmp
案例映射插值(使用、 或
\l
)\L
[ …]\u
\U
匹配运算符 (
m//
):标量真/假结果永远不会被污染。
$1
如果使用区域设置(但不是)有效,并且子模式正则use locale ':not_characters'
表达式包含\w
(以匹配字母数字字符)、\W
(非字母数字字符)、\s
(空白字符)或\S
(非空白字符)。如果使用区域设置有效并且正则表达式包含、、或,则匹配模式变量 、$&
($`
匹配前)、$'
(匹配后)和$+
(最后匹配)也会受到污染 。\w
\W
\s
\S
替换运算符 (
s///
) […][⋮]
这看起来应该是一个详尽的列表。而且我看不出它如何应用:我的正则表达式没有使用 , 或 中的任何一个\w
,所以\W
它不应该依赖于语言环境。\s
\S
有人可以解释为什么这段代码会污染变量$1
吗?
security - 从 Haskell 中的“强化静态检查工具”复制“污染模式”
我已经阅读了 Fortify 静态检查工具的一些文档。此工具使用的概念之一称为taints。某些来源(例如 Web 请求)提供的数据以一种或多种方式受到污染,而某些接收器(例如 Web 响应)则要求数据不受污染。
Fortify 的好处是您可以拥有多种类型的污点。例如,您可以使用标记srand
输出,NON_CRYPTO_RAND
然后要求在将变量用于加密目的时不存在此污点。其他示例包括非绑定检查号码等。
是否可以使用 Haskell 中使用的更强大的静态类型系统或其他具有更复杂类型系统的编程语言来建模污点?
在 Haskell 中,我可以做诸如此类的类型,Tainted [BadRandom,Unbounded] Int
但使用它们进行计算似乎相当困难,因为这种新的类型约束也是不限制污点的操作。
有更好的方法来实现这一点吗?关于该主题的任何现有工作?