Ballerina 数据库读取不会引发编译器错误
Ballerina database read does not throw compiler error
虽然在 [1] 之后,如果 select 语句是 below.In,它不会抛出编译器错误,这种情况下 'id' 可能是 path/query 参数。这是预期的行为吗?
var response = customerDB->select("SELECT * FROM customer WHERE id =? ",(),id);
[1] https://ballerina.io/learn/by-example/taint-checking.html
您给出的示例不会导致 SQL 注入威胁,因为您没有将 id 参数附加到查询中。您将 "id" 值作为参数传递给 select 操作,以便在内部构造适当的准备语句。因此不会出现编译错误。
以下应该会导致编译器错误。
var response = customerDB->select("SELECT * FROM customer WHERE id = " + id, ());
您可以参考 this 以获取 SQL 注入的示例。
虽然在 [1] 之后,如果 select 语句是 below.In,它不会抛出编译器错误,这种情况下 'id' 可能是 path/query 参数。这是预期的行为吗?
var response = customerDB->select("SELECT * FROM customer WHERE id =? ",(),id);
[1] https://ballerina.io/learn/by-example/taint-checking.html
您给出的示例不会导致 SQL 注入威胁,因为您没有将 id 参数附加到查询中。您将 "id" 值作为参数传递给 select 操作,以便在内部构造适当的准备语句。因此不会出现编译错误。
以下应该会导致编译器错误。
var response = customerDB->select("SELECT * FROM customer WHERE id = " + id, ());
您可以参考 this 以获取 SQL 注入的示例。