【问题标题】:this is dangerous if i insert query in sql field如果我在 sql 字段中插入查询,这很危险
【发布时间】:2013-01-02 10:37:38
【问题描述】:

这不是sql注入

例如,假设用户在网络表单中填写我的表单应用程序,在表单的一个字段中用户写入(从用户中选择 *)或编写危险的 sql 脚本并发送数据和我的数据库中设置的所有内容,以便我在表中记录例如

编号 |标题 |描述 -------------------- 1 |第一 |从用户中选择 *

如何保护它?或者通常这是危险的? tnx

【问题讨论】:

    标签: asp.net sql sql-server-2008


    【解决方案1】:

    这不是sql注入

    这是SQL injection

    如何保护它?还是一般来说这很危险?

    由于您已标记 asp.net,因此始终使用参数化查询。
    请参阅:Using Parameterized Queries with the SqlDataSource (C#)Parameterized SQL Queries in C#

    编辑: 由于 OP 在 cmets 中提到了关于 Entity 的使用。应考虑以下几点:

    Prevent SQL injection attacks. - Entity Framework - MSDN

    LINQ to Entities 注入攻击:

    虽然查询组合在 LINQ to Entities 中是可能的,但它是 通过对象模型 API 执行。与实体 SQL 查询不同, LINQ to Entities 查询不是通过使用字符串操作组成的 或连接,它们不受传统 SQL 的影响 注入攻击。

    【讨论】:

    • 不,我使用实体框架 4,ef 保护 sql 注入,但这是一些字段的值,例如字符串值
    • @AbbasBafekr,您应该在问题上提到这一点。在这种情况下,它将作为字符串值保存在数据库中,不会被认为是危险的
    • @AbbasBafekr 那么您是否担心有人将脚本输入您的数据库?除非出于某种原因您基于该字段构建了一些非参数化的动态 sql,否则这不会成为问题 - 但您为什么需要这样做?
    • @Bridge 我做网站,用户可以编辑网站信息
    • @Habib 我查过了,但你又说这是注射,我认为这不是注射
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多