远离SQL注入

远离SQL注入,sql,code-injection,Sql,Code Injection,如果我确保在查询中只使用字母数字字符,那么我应该不会使用任何SQL注入,对吗?从技术上讲,这可能是正确的,因为它会阻止使用——或类似的欺骗。然而,现在大多数平台都有更强大的方法来正确地转义输入,并防止输入以非预期的方式影响数据库。 要点: 防御选项1:准备好的语句(参数化查询) …如何首先教所有开发人员如何编写数据库查询 防御选项2:存储过程 …安全实施时 防御选项3:转义所有用户提供的输入 …与使用参数化查询相比非常脆弱 编写一个只包含字母数字字符的有用查询非常困难。使用参数化查

如果我确保在查询中只使用字母数字字符,那么我应该不会使用任何SQL注入,对吗?

从技术上讲,这可能是正确的,因为它会阻止使用——或类似的欺骗。然而,现在大多数平台都有更强大的方法来正确地转义输入,并防止输入以非预期的方式影响数据库。

要点:

  • 防御选项1:准备好的语句(参数化查询)
    • …如何首先教所有开发人员如何编写数据库查询
  • 防御选项2:存储过程
    • …安全实施时
  • 防御选项3:转义所有用户提供的输入
    • …与使用参数化查询相比非常脆弱

    • 编写一个只包含字母数字字符的有用查询非常困难。使用参数化查询,不要寻找非快捷方式。

      如何使用所需字符,如
      ()=+
      等?@oded,不要忘记逗号和引号。也许他/她指的是输入到查询中的输入字段,而不是查询本身?请解释“确保”的含义。你不是说“我只允许在网络表单文本框中使用字母数字”,对吧?不知道人们为什么投票关闭。这是一个问题,很清楚被问到了什么,而且很有责任感。