标签: code-injection

有 2 个构造函数是正确的,一个用于依赖注入,另一个用于解决注入?

我的类中有 2 个构造函数:

public class CacheWebServices : ICacheWebService
    {
        public ICache apiConnector { get; set; }

        public CacheWebServices(ICache ApiConnector)
        {
            apiConnector = ApiConnector;
        }

        public CacheWebServices()
            : this(new VuelingCache())
        { }
    }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个依赖于 IVuelingCache 的构造函数和一个默认构造函数,该默认构造函数创建一个实例以传递给第一个构造函数。这是对的吗?这样我就摆脱了工厂类。

c# constructor code-injection

5
推荐指数
1
解决办法
1175
查看次数

整数字段中的sql注入

我有一个应用程序,用户名字段将使用 将任何给定值转换为整数值integer.parseint。该应用程序使用 JSP 和 Oracle 数据库。

该 URL 已经使用 SQLMap 进行了测试,并且它不是动态的。因此,我可以尝试的唯一方法是通过登录表单,但我无法绕过它。

当我输入'1=1, -- 时,服务器返回错误,error for input string

我想注入字段,那么如何才能做到呢?

我不知道是否可以使用替代编码,因为无论如何它都会将其转换为整数。

sql code-injection

5
推荐指数
1
解决办法
5985
查看次数

依赖注入和默认构造函数的使用

我正在尝试理解依赖注入的概念。下面是我尝试调试的示例。在这里,我创建了 Customer 类,我已将其依赖项注入到他的构造函数中。现在,当我调用this.Iorder.GetOrderDetails();Index方法时,它给我错误NullReferenceException并要求使用new关键字创建一个对象来调用该方法。当我将此调用this.Iorder.GetOrderDetails();移至另一个方法GetCutomerDetails()并在索引方法中调用该方法时,它起作用了。

问题:我无法理解为什么this.Iorder.GetOrderDetails() 方法调用在方法中不起作用 Index以及为什么它在方法中起作用GetCutomerDetails()

public  interface IorderDetails
{
    void GetOrderDetails();
}

public class CustomerModel : IorderDetails
{
    public void GetOrderDetails() {}
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public class CustomerController: Controller
{
    private IorderDetails Iorder;

    //DI constructor  Injecting OrderDetails object 
    CustomerController(IorderDetails iorderObj)
    {
        if (iorderObj == null)
            throw new ArgumentNullException("orderObj should not be null");

        this.Iorder = iorderObj;
    }
    //Default constructor  
    public CustomerController() { }

    public ActionResult …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection code-injection

5
推荐指数
1
解决办法
5932
查看次数

如何定位缺少 $injector 错误?

我正在将一些核心的角度内容移植到一个新项目中。现在我收到注入器错误,但堆栈跟踪/角度错误页面不显示有问题的注入错误的类名。我得到的只是

\n\n
Error: $injector:modulerr\nModule Error\n
Run Code Online (Sandbox Code Playgroud)\n\n

通常那里有一个类名。现在我必须检查每个类(数十个)并手动检查导入。难道就没有更好的办法吗?我在添加类时就看到了这种情况的发生。有时它会显示丢失的注入的名称,有时它只是显示为空白,否则堆栈跟踪会正确识别丢失/错误的注入。

\n\n

是否有一些额外的调试模式可以获取此信息?

\n\n

完整的(无用的)堆栈跟踪:

\n\n
Failed to instantiate module FSApp due to:\nError: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=FSApp&p1=Error\xe2\x80\xa6cape%2Fmain%2Fresources%2Flib%2Fangular-1.2.16%2Fangular.min.js%3A32%3A445)\n    at Error (native)\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:6:450\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:332\n    at Array.forEach (native)\n    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445)\n    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:18\n    at Array.forEach (native)\n    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280)\n    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您想尝试重现此情况,请提交您的更改。到处删除几个文件。运行你的角度应用程序。如果删除得足够多,您很快就会收到空白注射器错误。

\n

code-injection angularjs

5
推荐指数
1
解决办法
3477
查看次数

Firebase 的 SQL 注入版本

有了深厚的SQL背景后第一次使用firebase。我习惯于使用诸如addslashes()清理用户输入查询之类的功能。

是否有任何标准方法可以使用 Firebase 查找执行类似的操作?

例如:

// expected a key, not a path
var userProvidedKey = "3/malicious"

// will not be a ref to what I expect
var ref = firebase.database().ref(`something/${userProvidedKey}`)
Run Code Online (Sandbox Code Playgroud)

我不知道用户能够在参考中进一步搜索会有多恶意,但也许这个问题已经解决了?或者我需要收到.split('/').shift()我收到的任何信息吗?

注意:我的示例使用 JS SDK。

code-injection firebase

5
推荐指数
1
解决办法
2433
查看次数

使用 Create-React-App,是否可以像使用 grunt/gulp 一样在构建过程中将代码注入/替换/附加到 index.html 文件中?

Create-react-app 在 build 文件夹中创建一个 index.html 文件,我巧妙地将该文件重命名为 index.aspx,(in package.json - "build": "react-scripts build && mv build/index.html build/index.aspx",)因为我需要该应用程序在我们服务器上的模板中运行 - 它确实如此。但是,我目前必须在新的 index.aspx 文件中<%@ Page language="c#" CodeBehind="index_fw2.aspx.cs" AutoEventWireup="false" Inherits="IMod.Web.V2.Index" %>的 之前过去<!doctype html>,以便模板在我们的服务器上呈现。

无论如何,我是否可以让 create-react-app 将其注入到新重命名的 index.aspx 文件中,甚至在构建过程中从 index.html 重命名之前?我到处寻找这方面的参考资料。

asp.net build code-injection reactjs create-react-app

5
推荐指数
1
解决办法
3960
查看次数

使用React惰性或NextJS动态动态导入是否容易受到注入影响

反应lazy

const Component = lazy(() => import(`../${element}`));
Run Code Online (Sandbox Code Playgroud)

下一个JSdynamic

const Component = dynamic(() => import(`../${element}`));
Run Code Online (Sandbox Code Playgroud)

这些示例具有相对路径。但是,在我的应用程序中,我还使用元素延迟加载作为导入函数的唯一参数,例如

const Component = lazy(() => import(element));
Run Code Online (Sandbox Code Playgroud)

元素可以被篡改来注入XSS吗?如果是这样,我该如何预防呢?有没有办法对变量进行编码以确保其安全?

xss lazy-loading code-injection reactjs next.js

5
推荐指数
0
解决办法
1340
查看次数

Android Koin 注入具有多个相同类参数的视图模型失败

我正在关注她所说的文档https://insert-koin.io/docs/reference/koin-android/viewmodel/#viewmodel-and-injection-parameters

唯一的区别是我的视图模型有 2 个同一类 String 的参数(除了 Koin 注入的存储库)。我们称它们为 stringA =“red”和 stringB =“blue”。

当我传递参数时,这些参数的定义明显不同。但是,当实例化视图模型时,我会记录字符串,并且两者的值都是 stringA“red”。

我可以将它们都包装到一个数据类中,但理想情况下我希望将它们分开,知道什么是错误的或应该做什么?

通证模块

val viewModelsModule = module {

  viewModel { params ->
    MyViewModel(get(), stringA = params.get(), stringB = params.get(), get()) }

}
Run Code Online (Sandbox Code Playgroud)

视图模型注入

  val viewModel: MyViewModel = getViewModel(parameters = {parametersOf("red", "blue")})

Run Code Online (Sandbox Code Playgroud)

MyViewModel 内部的参数检查

init {
    viewModelScope.launch {
      Log.d("TAG", "$stringA $stringB")
    }
  }
Run Code Online (Sandbox Code Playgroud)

并打印:

red red
Run Code Online (Sandbox Code Playgroud)

android code-injection kotlin koin

5
推荐指数
1
解决办法
2875
查看次数

Roboguice注入适配器

我有一个适配器,它扩展ArrayAdapter<T>并想要注入它们LayoutInflater.代码如下所示,但inflater始终如此null

public abstract class MyAdapter<T> extends ArrayAdapter<T> {

    @Inject
    protected LayoutInflater inflater;

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // inflater here is null
    }
}
Run Code Online (Sandbox Code Playgroud)

android code-injection roboguice

4
推荐指数
2
解决办法
2514
查看次数

使用PDO在MySQL中清理输入的正确方法

所以我有一个朋友尝试在我的网站上运行SQLinjection,他设法使用下面的代码进入它.我怎么能阻止这个?我已经阅读了有关清理变量的内容,但我该怎么做?

'; INSERT INTO登录(用户名,密码)VALUES('Gjertsmells','密码'); SELECT'密码'FROM登录WHERE'x'='x

$db = new PDO('mysql:host=XXXXXXXX;dbname=XXXXXXX', 'XXXXXXXXXX', 'XXXXXXXXX');

        // query MySQL to verify login
        $query = $db->prepare("SELECT password FROM login WHERE username='$username'");
        $query->execute();

        $column = $query->fetchColumn();
        if($column === $password)
Run Code Online (Sandbox Code Playgroud)

php mysql pdo code-injection

4
推荐指数
2
解决办法
6595
查看次数