大家好,我目前正在使用查询生成器在ASP.NET中工作,以便在我在App_Code文件夹中创建的某些数据集上创建选择,插入,更新查询等。 我已经为您意识到要在查询中使用参数,您必须使用“?” 像这样

SELECT * FROM users WHERE email = ?

我想知道的是,这实际上可以保护您的表免受sql注入吗?还是需要在代码中做更多操作以保护查询?

#1楼 票数:2

参数化查询接受参数并将其输入为适当的SQL数据类型。 因此,例如创建此过程

CREATE PROCEDURE GetStudent (IN LN VARCHAR(200))
  BEGIN
    SELECT Name FROM Students WHERE LastName = LN;
  END

并传递此值(假设这在您的C#代码中。

"'Bobby'; DROP TABLE STUDENTS;"

本质上将执行此查询

SELECT Name FROM Students WHERE LastName ='''Bobby;''DROP TABLE Students'

这是相当安全的。

当然,您将必须适应您的特定应用程序需求,但是总的来说,对于所有主要的RDMS而言,参数化查询对于SQL注入都是安全的。

  ask by Tunde Adegoroye translate from so

未解决问题?本站智能推荐:

1回复

UPDATE查询未更新Access数据库中的记录

任何人都可以看看我的代码并告诉我有什么问题吗? 我正在尝试更新值但 Access 数据库没有更新,即使我的方法正在解析查询。 } 这也是我的 Access 数据库表(图像)。 访问数据库表
1回复

ASP.NET自从从SQL切换到AccessDB后,我无法使我的数据源/gridview正常运行

我有一个学校项目即将推出,它是ASP.NET中的一个Web应用程序,我认为我已经完成并使用本地MySQL数据库按预期工作。 我的教授最近指示我们将我们的数据库更改为MS Access,并且我已经成功地将切换全部用于我的课程之一。 有问题的类从我的数据库表中注册人员,并在网格视图中列出,使用过
1回复

在VisualStudio中选择对Access数据库的查询

这是我的代码: 和我的数据源 我正在尝试存储来自select查询的值,然后使用它计算出总价格,然后将其存储为文字。 到目前为止,我只得到0。没有编译错误。 有人知道为什么这行不通吗?
3回复

更新asp.net应用程序中的查询语法错误

编辑: 这个问题已经改变。 HansUp在update语句中解决了此语法问题。 现在正在发生的事情完全不同。 过程是 用户选择一个gridview项目 它将它们重定向到更新页面,并使用数据读取器,根据url中传递的ID填充文本框和复选框 然后,用户可以对文本框/复选框
1回复

VBAsp.net将参数传递给子查询还是更好的解决方案?

环境:Visual Basic Asp.net连接到Access数据库 好的,将我正在使用的数据库的Select语句放在一起,我很困惑。 希望你们中的一个能提出解决方案! 我需要的是*他们没有申请过的工作。 当他们申请工作时,将由APPLICANT表中的ContactID和JobID
1回复

TableAdapter中的IIF查询语句出错

嗨抱歉英语不好 我在.mdb格式的访问数据库中有3个表 - 我在vs 2010中使用此数据库作为数据源。 我有一个TableAdapter与以下填充查询(连接是MS Jet 4.0): 为了避免获得Null值,我在最后4列中创建了一个IIF语句,在访问时工作正常,但在vs表适配器中出现
2回复

查询以更新值

我正在尝试更新数据库,即MS Access文件,我想通过从文本框中获取值来更新表,但是我无法编写适当的查询。 谁能帮我写一个正确的更新查询吗?
2回复

在VisualStudio中使用参数访问查询

在Visual Studio的“新建数据源向导”中的“视图”列表中不显示具有somecolumnname = [?] Microsoft Access查询。 通过仅提示输入参数值,该查询就可以在Microsoft Access中完美地工作。 查询的列应基于几个文本框中的值来填充表单上的标