芭蕾舞女演员数据库读取不会引发编译器错误

时间:2018-07-26 06:04:05

标签: ballerina

在[1]之后,如果select语句如下所示,则不会引发编译器错误。在这种情况下,“ id”可以是路径/查询参数。这是预期的行为吗?

 var response = customerDB->select("SELECT * FROM customer WHERE id =? ",(),id);

[1] https://ballerina.io/learn/by-example/taint-checking.html

1 个答案:

答案 0 :(得分:1)

您给出的示例不会引起SQL注入威胁,因为您没有将id参数附加到查询中。您要将“ id”值作为参数传递给选择操作,以便在内部构造适当的预处理语句。因此,不会发生编译错误。

以下应导致编译器错误。

    var response = customerDB->select("SELECT * FROM customer WHERE id = " + id, ());

您可以参考this以获得有关SQL注入的示例。