我目前正在使用Ballina中的参数化查询.
int id = 10;
int age = 12;
sql:ParameterizedQuery query = `SELECT * FROM students WHERE id < ${id} AND age > ${age}`;
我想确保我的申请的安全性.我想知道在使用参数化查询时,是否有必要清理这些查询的所有输入,作为额外的安全层.
我目前正在使用Ballina中的参数化查询.
int id = 10;
int age = 12;
sql:ParameterizedQuery query = `SELECT * FROM students WHERE id < ${id} AND age > ${age}`;
我想确保我的申请的安全性.我想知道在使用参数化查询时,是否有必要清理这些查询的所有输入,作为额外的安全层.
在调用特定数据库的数据库驱动程序之前,SQL库将SQL库中的参数化查询转换为预准备语句.据我所知,这种从参数化查询到准备好的SQL语句的转换是针对JBallina[1][2][3]中的MySQL完成的.对于其他实现,这可能有所不同.因此,对于MySQL,我会说您真的不必担心使用正确格式的参数化查询进行SQL注入攻击.
[1]-https://github.com/ballerina-platform/module-ballerinax-mysql/blob/master/ballerina/client.bal#L59