SQL 注入中的“错误处理的查询程序集”是什么意思?

What this mean " Incorrectly Handled Query Assembly " in SQL injection?

我正在看的书是关于“SQL-injection”所以我污损了一个标题 “错误处理的查询程序集”这是什么意思?你能给我一个示例代码吗?谢谢

我想你可能已经了解 SQL 注入。 Incorrectly Handled Query Assembly 似乎意味着查询字符串的构造不正确。

想一个简单的场景,您编写了一个查询来列出(登录)用户的全部详细信息。让我们

String part1="SELECT * FROM TRANSACTIONS WHERE TAG=' ";
part2=" ' AND ID=' ";
part3=" ';";
//Constructing query with user inputted tag and user ID
String query=part1+ user_entered_tag + part2 + user_id + part3;
//This is an unsafe construction of query.

如果用户输入这样的标签:

Abc' OR '2'='2' OR '1'='1

查询会变成这样:

SELECT * FROM TRANSACTIONS WHERE TAG='Abc' OR '2'='2' OR '1'='1' AND ID='544678';

如果随后执行查询,将提取所有交易。

因此,未经授权的人将可以访问数据。发生这种情况是因为在查询的构造中留下了漏洞。开发人员应通过添加类型检查或使用 prepared statements 等内置功能来避免此类注入。