【问题标题】:OrientDb sql injection and escaping charactersOrientDb sql 注入和转义字符
【发布时间】:2015-03-06 17:57:57
【问题描述】:

在使用 OrientDB-NET.binary 对 OrientDb 进行编程时,如何防止 sql 注入?有没有办法为 Orient-SQL 转义特殊字符并使用字符串文字?

示例:我想存储这个字面量:me' or 1 = 1 ),'//,然后像这样查询它

select from MyVertex where text = '...'

我在 OrientDb 工作室中也遇到了麻烦。

我找到了this post,它与Java驱动程序有关,所以我想知道.NET是否有类似的东西。

【问题讨论】:

    标签: .net sql-injection orientdb


    【解决方案1】:

    You need to use parameterized queries.

    这些查询将 datasyntax 分开,这是 SQL 注入背后的根本问题。

    在 C# 中,使用 OrientDB-NET 二进制文件,您想做这样的事情(改编自 OrientDB-NET wiki:

    using (ODatabase database = new ODatabase("yourDatabase"))
    {
        PreparedQuery query = new PreparedQuery("SELECT FROM MyVertex WHERE text = ?");
        var selectedValue = database
            .Query(query)
            .Run([***Your Input Here***])
            .SingleOrDefault();
    
        var text = selectedValue.GetField<string>("text");
    }
    

    您可以查看 OrientDB-NET unit tests 的 PreparedQuery 以查看有关如何执行此操作的更多示例。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 2010-12-21
      • 2011-09-26
      • 2010-11-08
      • 1970-01-01
      • 2020-09-28
      • 2013-06-30
      • 1970-01-01
      相关资源
      最近更新 更多