【问题标题】:What is second level SQL Injection什么是二级 SQL 注入
【发布时间】:2010-12-24 17:07:35
【问题描述】:

关于二级SQL注入的全部内容..这是参考问题 Use of parameters for mysql_query.. 并且其中一个答案的一部分有这个词...

【问题讨论】:

  • 我不确定我是否能够解释清楚..但我正在尝试找出SQL注入和所谓的二级注入是否相同?...上面的链接说明了所有疑问,因为该术语已在该答案的某处用作答案的一部分。

标签: mysql sql-injection


【解决方案1】:

我不太确定,但我认为它是在帖子中“定义”的:Use of parameters for mysql_query

摘录(见第2点):

magic_quotes_gpc 自动 逃避你在请求中收到的东西 来自客户......但它无法检测到 所谓的二级注入:

  1. 您从客户端收到恶意查询并将其内容存储在 数据库。 magic_quotes_gpc 防止 SQL注入;恶意字符串 正确存储。
  2. 稍后,您从数据库中获取此字符串并将其包含在 另一个查询。现在字符串没有 来自一个请求,所以 magic_quotes_gpc 没有逃脱 细绳。瞧,SQL 注入;您的 数据现在可能已经消失了。

这是我用谷歌搜索的另一个 (http://www.osix.net/modules/article/?id=624):

注意存储中的变量 过程并不总是不受 SQL 的影响 注射剂。如果存储 过程包含添加的结构 第二级解析,例如 在 MS SQL Server 中对字符串执行 EXEC,您 将不得不处理元字符 再次。这次在里面存储 过程。

【讨论】:

    【解决方案2】:

    如果您从不认为任何数据都可以“安全”地放入查询中,那么 SQL 注入就不会有任何问题。即使 他/她自己将数据交给您并告诉您将其插入到 SQL 查询中……您仍然应该验证它! xD

    在执行查询时尝试始终使用Parameterized Statements 是个好主意。这样一来,数据库驱动程序本身就负责转义潜在的有害数据,从而大大降低了任何类型的 SQL 注入的风险。

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 1970-01-01
      • 2012-08-01
      • 2015-02-20
      • 1970-01-01
      • 2014-11-06
      • 2017-01-23
      • 2014-12-15
      • 2015-10-21
      相关资源
      最近更新 更多