问题标签 [code-injection]

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 投票
5 回答
2318 浏览

c# - 编译后将属性注入 .NET 类

我想在不引用 WPF 程序集的情况下实现 WPF 的 MVVM 模式的 ViewModel 部分。有问题的部分是命令路由,它要求 ViewModel 实现类型的属性,ICommand以便命令绑定可以工作。

现在,我可以避免ICommand并简单地将属性声明为object. 一切仍然有效,就是这样。但困扰我的是,我仍然必须声明它们,我真的不想这样做,因为它们感觉就像样板代码

我的 ViewModel 目前看起来像这样:

启用命令处理程序(一个和一个可选)的CommandHandlerAttribute运行时发现,而实际上是将自身注入属性设置器和调用的一个方面。我通过使用编译时 IL weaver来实现这一点。ActionFunc<bool>BoundPropertyAttributeINotifyPropertyChanged

理想情况下,我也想隐含最后一行(SayHello 属性)。如果不是 WPF 的要求,那么将它放在源代码中是没有意义的。

因此,很自然地,我正在考虑使用CommandHandlerAttribute方面将必要的 IL 注入到类中,并从本质上创建属性 post-compile。这是相当困难的,尽管一个好的 IL 编织器(例如PostSharp)可以大大简化它。

在我踏上这段旅程之前,我想听听大家对我的方法的看法。好听吗?有没有更好的办法?你会/怎么做?

0 投票
4 回答
109 浏览

security - 如果从外部来源获得,除字符串之外的其他数据类型是否可能有害?

这是一个众所周知的事实,您不能信任用户输入。如果这些输入未经过滤使用,它们甚至可能是一个安全问题。XSS 和 SQL 注入是使用未经过滤的用户输入(或输入,可以由用户更改)可能出现的问题。

为避免此类问题,您必须控制所有可能受外部资源影响的字符串。Perl 通过它的 'Taint-mode' 支持这一点。

我所知道的问题都是由操纵的字符串引起的。你知道来自外部影响操纵的整数、浮点数等安全问题的例子吗?或者可以假设这种数据类型是安全的吗?

0 投票
5 回答
1323 浏览

.net - 有什么好的 .NET 安全编码库吗?

一直在阅读各种注入型攻击,似乎摆脱这些漏洞的最佳方法是对所有用户输入进行编码,以删除/替换某些字符(< > ; 等)。

我在这里最好的选择是什么?有没有很好的图书馆可以帮助我解决这个问题?或者可以帮助我发现潜在漏洞的东西?- 还是正则表达式是我最好的选择?:)

非常感谢

0 投票
1 回答
7465 浏览

c# - C#:将 CSS 注入 MSHTML 实例的最佳方法?

我正在尝试将一些伴随一些其他 HTML 的 CSS 注入到 C# 托管的 WebBrowser 控件中。我正在尝试通过底层的 MSHTML(DomDocument 属性)控件来执行此操作,因为此代码用作完整 IE8 BHO 的各种原型。

问题是,虽然我可以注入 HTML(通过 mydomdocument.body.insertAdjacentHTML)和 Javascript(通过 mydomdocument.parentWindow.execScript),但它完全拒绝了我的 CSS 代码。

如果我将包含要插入的 HTML 的字符串与注入后的目标页面源进行比较,则 MSHTML 的源将包含<style>元素及其基础源之外的所有内容。

CSS 通过了 CSS 2.1 的 W3C 验证。它不会做任何太棘手的事情,除了一些背景图像属性将图像直接嵌入到 CSS 中(例如background-image: url("data:image/png;base64...),并且注释掉这些行不会改变结果。

更奇怪的是(我不确定这是否相关),上周我对此没有任何问题。这周我又回到了它,在切换了一些在实际注入之前处理要注入的 HTML 的代码之后,它不再起作用了。自然地,我认为我的其中一个更改可能是问题所在,但是在注释掉所有这些逻辑并将其输入一个直字符串之后,HTML 仍然显示为未格式化。

目前我正在注入<body>标签,虽然我已经尝试注入<head>并且遇到了类似的结果。

在此先感谢您的帮助!

汤姆

0 投票
6 回答
10972 浏览

javascript - 防止现有的 CSS 样式化注入的 HTML/CSS

我正在开发一个在我无法控制的网页上注入 JS+CSS+HTML 的项目。

我担心我的注入代码的主机页面样式——我希望我注入的代码只服从我的样式,而不是他们的样式。

目前,我能想到的唯一方法是为 container<div>的类明确指定每个可能的标签(使用预定义的、已知的浏览器默认值),并依靠继承将这些规则传播到我的其余部分注入的 HTML。这个 CSS 需要出现在页面<head>标签的底部。

不过,我不认为这是最好的解决方案,我也不期待实施它。当然还有更好的方法。

0 投票
5 回答
1203 浏览

.net - 如何注入 .NET 代码来更改函数的返回值

我目前正在研究如何编写可以注入另一个 .NET 进程并覆盖函数返回值的 .NET 代码。这个想法是我的代码会改变方法调用的返回值,如下所示:

我的代码会拦截对 DoSomething() 的调用并返回我自己的自定义字符串,而不是“值”。

我猜我需要使用 .NET Profiling API 来做这种事情。有没有人有使用 Profiling API 的经验,如果有,你认为这种代码注入是可能的吗?

我不打算将它用于任何恶意,我只是想在 .NET 中尝试一些非常低级别的东西,看看它是否可以完成。

干杯。贾斯。

0 投票
1 回答
761 浏览

jsf - 用于将 JSP taglib 支持添加到 facelets 页面的命名空间是什么?

类似于以下内容

似乎不起作用,有什么提示吗?或者,如何在不使用过滤器的情况下在启动时将 bean 注入 JSF 生命周期流?

0 投票
2 回答
2059 浏览

.net - 将 CLR 主机注入正在运行的进程中 - 可能吗?

我知道,这条路很疯狂。

我有一个我想通过 .NET 扩展的可执行文件(我无权访问的源代码)。它是本机可执行文件,因此我需要注入 CLR 主机才能执行此操作。我的基本想法是通过 .NET 语言(例如 C#)提供类似脚本的功能,并在目标可执行文件中提供挂钩以供脚本操作,反之亦然。

我知道我需要使用各种技术来实现这一点 - DLL 注入、一些运行时 ASM 注入等,但我想知道的是:我所说的可能吗?更好的是 - 以前有人做过这样的事情吗?

0 投票
1 回答
17118 浏览

windows - 如何使用 SetWindowsHookEx 和 WH_KEYBOARD 挂钩外部进程

我试图钩住例如记事本没有成功。制作一个全局钩子似乎工作正常。

在 XP SP2 上测试。

编辑:修改后的代码现在可以使用。

MyDLL 代码

我的程序

0 投票
1 回答
3437 浏览

php - 当前在 PHP 中防止电子邮件注入攻击的最佳实践是什么?

如今,从 PHP 电子邮件表单中清理数据的最佳实践是什么?

我目前正在使用这样的东西......

以这种方式简单地过滤电子邮件字段是否足够保护?我可以/应该更有效地强化脚本以防止垃圾邮件发送者吗?

提前致谢!

[编辑]澄清,因为到目前为止的答案表明我没有很好地解释自己。

我主要关心的不是垃圾邮件机器人获取这个脚本,而是任何人利用它向任何地址发送非法电子邮件,而不是me@example.com. 这可能包括一个机器人,但也可能是一个击败 CAPTCHA 测试的人。

我正在寻找的是 PHP,它将确保 mail() 方法发送的电子邮件不被劫持。这可能是一个简单地去除某些字符的正则表达式或过滤器或类似的。再次感谢。[/编辑]