问题标签 [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.
c# - 编译后将属性注入 .NET 类
我想在不引用 WPF 程序集的情况下实现 WPF 的 MVVM 模式的 ViewModel 部分。有问题的部分是命令路由,它要求 ViewModel 实现类型的属性,ICommand
以便命令绑定可以工作。
现在,我可以避免ICommand
并简单地将属性声明为object
. 一切仍然有效,就是这样。但困扰我的是,我仍然必须声明它们,我真的不想这样做,因为它们感觉就像样板代码。
我的 ViewModel 目前看起来像这样:
启用命令处理程序(一个和一个可选)的CommandHandlerAttribute
运行时发现,而实际上是将自身注入属性设置器和调用的一个方面。我通过使用编译时 IL weaver来实现这一点。Action
Func<bool>
BoundPropertyAttribute
INotifyPropertyChanged
理想情况下,我也想隐含最后一行(SayHello 属性)。如果不是 WPF 的要求,那么将它放在源代码中是没有意义的。
因此,很自然地,我正在考虑使用CommandHandlerAttribute
方面将必要的 IL 注入到类中,并从本质上创建属性 post-compile。这是相当困难的,尽管一个好的 IL 编织器(例如PostSharp)可以大大简化它。
在我踏上这段旅程之前,我想听听大家对我的方法的看法。好听吗?有没有更好的办法?你会/怎么做?
security - 如果从外部来源获得,除字符串之外的其他数据类型是否可能有害?
这是一个众所周知的事实,您不能信任用户输入。如果这些输入未经过滤使用,它们甚至可能是一个安全问题。XSS 和 SQL 注入是使用未经过滤的用户输入(或输入,可以由用户更改)可能出现的问题。
为避免此类问题,您必须控制所有可能受外部资源影响的字符串。Perl 通过它的 'Taint-mode' 支持这一点。
我所知道的问题都是由操纵的字符串引起的。你知道来自外部影响操纵的整数、浮点数等安全问题的例子吗?或者可以假设这种数据类型是安全的吗?
.net - 有什么好的 .NET 安全编码库吗?
一直在阅读各种注入型攻击,似乎摆脱这些漏洞的最佳方法是对所有用户输入进行编码,以删除/替换某些字符(< > ; 等)。
我在这里最好的选择是什么?有没有很好的图书馆可以帮助我解决这个问题?或者可以帮助我发现潜在漏洞的东西?- 还是正则表达式是我最好的选择?:)
非常感谢
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>
并且遇到了类似的结果。
在此先感谢您的帮助!
汤姆
javascript - 防止现有的 CSS 样式化注入的 HTML/CSS
我正在开发一个在我无法控制的网页上注入 JS+CSS+HTML 的项目。
我担心我的注入代码的主机页面样式——我希望我注入的代码只服从我的样式,而不是他们的样式。
目前,我能想到的唯一方法是为 container<div>
的类明确指定每个可能的标签(使用预定义的、已知的浏览器默认值),并依靠继承将这些规则传播到我的其余部分注入的 HTML。这个 CSS 需要出现在页面<head>
标签的底部。
不过,我不认为这是最好的解决方案,我也不期待实施它。当然还有更好的方法。
.net - 如何注入 .NET 代码来更改函数的返回值
我目前正在研究如何编写可以注入另一个 .NET 进程并覆盖函数返回值的 .NET 代码。这个想法是我的代码会改变方法调用的返回值,如下所示:
我的代码会拦截对 DoSomething() 的调用并返回我自己的自定义字符串,而不是“值”。
我猜我需要使用 .NET Profiling API 来做这种事情。有没有人有使用 Profiling API 的经验,如果有,你认为这种代码注入是可能的吗?
我不打算将它用于任何恶意,我只是想在 .NET 中尝试一些非常低级别的东西,看看它是否可以完成。
干杯。贾斯。
jsf - 用于将 JSP taglib 支持添加到 facelets 页面的命名空间是什么?
类似于以下内容
似乎不起作用,有什么提示吗?或者,如何在不使用过滤器的情况下在启动时将 bean 注入 JSF 生命周期流?
.net - 将 CLR 主机注入正在运行的进程中 - 可能吗?
我知道,这条路很疯狂。
我有一个我想通过 .NET 扩展的可执行文件(我无权访问的源代码)。它是本机可执行文件,因此我需要注入 CLR 主机才能执行此操作。我的基本想法是通过 .NET 语言(例如 C#)提供类似脚本的功能,并在目标可执行文件中提供挂钩以供脚本操作,反之亦然。
我知道我需要使用各种技术来实现这一点 - DLL 注入、一些运行时 ASM 注入等,但我想知道的是:我所说的可能吗?更好的是 - 以前有人做过这样的事情吗?
windows - 如何使用 SetWindowsHookEx 和 WH_KEYBOARD 挂钩外部进程
我试图钩住例如记事本没有成功。制作一个全局钩子似乎工作正常。
在 XP SP2 上测试。
编辑:修改后的代码现在可以使用。
MyDLL 代码
我的程序
php - 当前在 PHP 中防止电子邮件注入攻击的最佳实践是什么?
如今,从 PHP 电子邮件表单中清理数据的最佳实践是什么?
我目前正在使用这样的东西......
以这种方式简单地过滤电子邮件字段是否足够保护?我可以/应该更有效地强化脚本以防止垃圾邮件发送者吗?
提前致谢!
[编辑]澄清,因为到目前为止的答案表明我没有很好地解释自己。
我主要关心的不是垃圾邮件机器人获取这个脚本,而是任何人利用它向任何地址发送非法电子邮件,而不是me@example.com
. 这可能包括一个机器人,但也可能是一个击败 CAPTCHA 测试的人。
我正在寻找的是 PHP,它将确保 mail() 方法发送的电子邮件不被劫持。这可能是一个简单地去除某些字符的正则表达式或过滤器或类似的。再次感谢。[/编辑]