.NET 中的 SQL 注入

发布于 2024-07-14 07:18:45 字数 74 浏览 7 评论 0原文

大家好,我想知道是否有人知道一些详细介绍 .NET Web 应用程序 SQL 注入预防的好网站。 任何资源都将得到极大的利用,谢谢。

Hi I was wondering if anyone knew of some good websites detailing prevention for SQL injection for .NET web applications. Any resources would be greatly appricated, thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

时常饿 2024-07-21 07:18:45

我认为,如果您在 google 上搜索一下“防止 .NET 中的 sql 注入”,您会发现很多好的资源。 :)

不管怎样,一件非常重要的事情是不要使用字符串连接来构建查询。
相反,使用参数化查询。 ADO.NET 允许以非常简单的方式执行此操作:

string sql = "SELECT * FROM Persons WHERE Persons.Lastname LIKE @p_Name";

SqlCommand cmd = new SqlCommand (sql);

cmd.Parameters.Add ("@p_Name", SqlDbType.Varchar).Value = textBox1.Text + "%";

I think that, if you google a bit on 'preventing sql injection in .NET', you'll find lots of good resources. :)

Anyway, one very important thing, is to not use string-concatenation in order to build your queries.
Instead, use parametrized queries. ADO.NET allows to do this, in a very easy way:

string sql = "SELECT * FROM Persons WHERE Persons.Lastname LIKE @p_Name";

SqlCommand cmd = new SqlCommand (sql);

cmd.Parameters.Add ("@p_Name", SqlDbType.Varchar).Value = textBox1.Text + "%";
哆兒滾 2024-07-21 07:18:45

如果您使用 SqlCommand.Parameters 集合来传递参数并且从不将用户文本注入到 Sql 查询文本中,则没有风险。

If you use the SqlCommand.Parameters collection to pass parameters and never inject user text into you Sql query text, there's no risk.

做个少女永远怀春 2024-07-21 07:18:45
  • 黄金法则:
  • 如果您在 .NET 中编写自己的命令字符串,则
  • 永远不要连接用户输入;如果您使用 LINQ,则使用参数集合;如果您在 TSQL 中编写命令,它通常会为您完成此操作
  • 使用 sp_executesql 或您的供应商的等效项
  • golden rule: never concatenate user input
  • if you write your own command strings in .NET, use the Parameters collection
  • if you use LINQ, it will usually do it for you
  • if you write commands in TSQL, use sp_executesql or your vendor's equivalent
花开浅夏 2024-07-21 07:18:45

首先要知道的是参数化你的查询或使用存储过程......

永远不要在代码中使用临时sql,你只附加值

只给出读和写权限(或者只读取那些不应该写的页面)

the first thing to know is to parameterize your queries or use stored procs....

Never use ad-hoc sql in code where you just append the value

give only read and write permissions (or only read for those pages that should not write)

谁与争疯 2024-07-21 07:18:45

MSDN 杂志文章 在 SQL 注入攻击阻止您之前阻止它们似乎是相当完整。

尽管包含有关您的具体问题的不太详细的信息,SDL 拥抱网络除了防止 SQL 注入攻击之外,这是您应该考虑的其他事情的一个很好的来源。

通常的免责声明适用,我不一定同意这些文章中提供的所有信息,但所提供的信息有望让您思考如何在公共网站上减轻 SQL 注入(和其他)攻击。

The MSDN Magazine article Stop SQL Injection Attacks Before They Stop You seems to be fairly complete.

While containing less detailed information about your specific question, SDL Embraces The Web is a good source of other things you should be thinking about in addition to preventing SQL injection attacks.

The usual disclaimers apply, I don't necessarily agree with all of the information presented in those articles, but the information presented will hopefully get you thinking about ways SQL injection (and other) attacks can be mitigated on a public website.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文