标签: code-injection

通过PublicKeyToken防止外部程序集注入

我正在使用以下代码:

AppDomain.CurrentDomain.AssemblyLoad += (sender, args) =>
{
    var token = args.LoadedAssembly.GetName().GetPublicKeyToken();

    if (!IsValidToken(token))
    {
        Process.GetCurrentProcess().Kill();
    }
};
Run Code Online (Sandbox Code Playgroud)

IsValidToken()进行比较加载反对我作为字节数组应用硬编码授权的公钥标记列表组件的公钥标记.

这是防止代码注入攻击的良好安全措施吗?此外,鉴于我稍后将使用NetReactor混淆我的应用程序,这是否必要?我试图阻止任何"窥探"我的应用程序,不仅来自Snoop工具,而且来自任何外部不受欢迎的来源.

c# assemblies .net-4.0 code-injection

11
推荐指数
1
解决办法
1062
查看次数

使用jQuery将HTML注入DOM的最佳方法是什么?

我正在制作一个日历页面,允许用户点击一天,然后使用弹出的表单输入当天的条目.

我对jQuery的DOM操作并不陌生,但这是我以前做过的事情,我开始怀疑是否有更有效的方法来做到这一点?

在JavaScript中手动构建HTML是性能最有效的方式(我认为这是真的,使用像appendTo()等函数)或者在DOM中创建一个隐藏的构造然后克隆它会更好吗?

理想情况下,我想知道这样做的最佳方法,以提供代码整洁性和性能之间的平衡.

谢谢,

html javascript jquery dom code-injection

10
推荐指数
1
解决办法
1万
查看次数

构造函数注入其他非依赖构造函数参数

我是IOC容器的新手,我开始使用NInject.

如果您希望构造函数具有非服务且不需要由IOC容器实例化的参数,您会怎么做?

例如:

public class Person
{
    private readonly string _name;
    private readonly IPersonRepository _repository;

    public Person(string name, IPersonRepository repository)
    {
        _name = name;
        _repository = repository;
    }

    ......
}
Run Code Online (Sandbox Code Playgroud)

想象一下,name是Person类的要求,因此,为了确保Person始终具有名称,我们要求将其传递给构造函数.

我们如何使用NInject获取Person的实例?该名称需要通过应用程序创建新Person的任何位来传入,而IOC容器需要传入IPersonRepository.

我知道可以使用属性注入名称或存储库,但这不是一个干净的解决方案 - 我们正在失去一些编程语言的语义能力.

constructor ninject code-injection

10
推荐指数
2
解决办法
1948
查看次数

如何在单独的XML文件中定义map属性(在Spring中)?

假设一个项目使用Spring并在XML中定义它的bean?它有一些bean在构造函数中接受Map.

通常,此映射被定义为bean下的属性,并在其下具有条目.

但如果参赛名单很大呢?它将使XML大量繁荣......

是否(地图)可以在XML文件中以某种方式定义,然后由需要它的bean进行重新引用?怎么样 ?

spring code-injection

10
推荐指数
1
解决办法
2万
查看次数

在Servlet中使用CDI注入

我试图@Inject@SessionScoped豆成过滤器

@WebFilter("/*")
public class IdentityFilter implements Filter, Serializable {

    @Inject
    private LoginUser loginUser;
...
Run Code Online (Sandbox Code Playgroud)

这里LoginUser@SessionScoped

目的是loginUser表示会话的登录用户.

问题是看起来我并不总是loginUser从当前会话中获取,因为一个会话的LoginUser对象正在与另一个会话共享,所以会话之间会出现"泄漏".显然这不好.

我想知道这是因为Filter对象是单例,还是至少在容器(glassfish)的请求和会话之间重用.(对?)

是否有更好的方法来获取LoginUser当前会话的对象而不使用Filter上的属性?

servlets code-injection cdi servlet-filters

10
推荐指数
1
解决办法
6653
查看次数

如何记录有人试图进行SQL注入

这里有很多方法可以保护您的代码免受SQL注入攻击.但我需要的是如何记录sql注入攻击,以便我们可以将他(攻击者用户)添加到blacklist-users数据库中.

我需要的是一种函数,如果有sql注入,它将返回true.

<?php
if(isset($_POST['username'])){
// need a function here which will return true if there's
// a sql injection else false
}
?>
Run Code Online (Sandbox Code Playgroud)

php sql security logging code-injection

10
推荐指数
1
解决办法
1019
查看次数

node.js中的Mongodb安全性

比如说MySQL数据库存在已知的安全问题.这如何适用于NoSQL数据库?例如注射,xss等.使用NoSQL数据库时你必须采取哪些安全措施?特别是关于MongoDB(使用node-mongodb-native)和Node.js(使用Express)

如果是这样,是否有任何Node/Express模块​​可以帮助防止这种情况发生?

database security code-injection mongodb node.js

10
推荐指数
1
解决办法
3345
查看次数

任何人都可以解释这个PHP代码注入攻击给我?

我一直在服务器上收到意外网址的请求.

特别是一个 /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E

这似乎每隔几个小时就会发生一次.

我通过http://www.url-encode-decode.com/运行了网址,结果如下:

phppath/php?-d allow_url_include = on -d safe_mode = off -d suhosin.simulation = on -d disable_functions ="" - d open_basedir = none -d auto_prepend_file = php:// input -n

攻击者试图在这做什么?

php security code-injection

10
推荐指数
1
解决办法
6633
查看次数

Angularjs - 如何从另一个不依赖的模块中纠正注入服务?

我不明白工作模块的依赖性.

我有3个模块,它们相互依赖,如图所示. 在此输入图像描述

"App"模块包括"module1"和"module2"."module2"包括"核心"模块.关于plunker有来源.

angular.module("core", []).factory("HelloWorld", function() {
  return function () {
    alert('Hello World!')
  }
});

angular.module("module1", []).controller("main", function(HelloWorld){
  HelloWorld();
});

angular.module("module2", ["core"]);

angular.module("app", ["module1", "module2"]);
Run Code Online (Sandbox Code Playgroud)

如果我将模块核心的服务注入模块"module1",它可以正常工作.但"核心"模块不依赖于模块"module1".为什么会这样?

code-injection angularjs angularjs-module

10
推荐指数
1
解决办法
4574
查看次数

安全设置未知属性(缓解方括号对象注入攻击)实用程序功能

设置好之后eslint-plugin-security,我继续尝试解决我们javascript代码库中方括号的近400种用法(由安全性/检测对象注入规则标记)。尽管此插件可能更智能,但方括号的任何使用都可能成为恶意代理注入自己的代码的机会。

要了解如何理解问题的整个上下文,您需要阅读以下文档:https : //github.com/nodesecurity/eslint-plugin-security/blob/master/docs/the-dangers-of-square -bracket-notation.md

我通常尝试使用Object.prototype.hasOwnProperty.call(someObject, someProperty)可以减轻someProperty恶意设置的机会的方法constructor。许多情况只是在for循环(for (let i=0;i<arr.length;i++) { arr[i] })中取消引用数组索引。如果i始终为int,则显然始终是安全的。

我认为我无法完美处理的一种情况是如下方括号分配

someObject[somePropertyPotentiallyDefinedFromBackend] = someStringPotentiallyMaliciouslyDefinedString
Run Code Online (Sandbox Code Playgroud)

StackOverflow的现状是“向我展示所有代码”-当您遍历一个代码库并在成百上千个实例中修复它们时,花很长时间才能阅读这些任务之一之前的代码。 。此外,我们希望确保此代码在将来进行修改时保持安全。

我们如何确保要设置的属性在香草对象上基本上尚未定义?(即constructor

尝试自己解决此问题,但缺少一些碎片。最终将对其进行编辑,但留在此处以供参考。

因此,我认为解决此问题的最简单方法是使用一个简单的util,safeKey定义如下:

// use window.safeKey = for easy tinkering in the console.
const safeKey = (() => {
  // Safely allocate plainObject's inside iife
  // Since this function may get called very frequently -
  // I think it's important to have plainObject's …
Run Code Online (Sandbox Code Playgroud)

javascript security code-injection square-bracket

10
推荐指数
1
解决办法
457
查看次数