我使用Gnome数据访问(libgda)来访问C程序中的数据库。 我使用GdaSqlBuilder来构建我的查询。 下面是一个字段添加同等条件的请求为例代码:Gnome的libgda和SQL注入
GdaSqlBuilderId add_equal_condition(char* m_name, GValue* m_value)
{
GdaSqlBuilderId name, value, condition;
name = gda_sql_builder_add_id(builder, m_name);
value = gda_sql_builder_add_expr_value(builder, NULL, m_value);
condition = gda_sql_builder_add_cond(builder, GDA_SQL_OPERATOR_TYPE_EQUAL, name, value, 0);
return condition;
}
是否libgda保护自己免受SQL注入或者我需要净化输入自己之前,我把它传递给GDA?
在此先感谢您的答案。
感谢您的回答,但我仍然想知道如果使用GdaSqlBuilder与使用占位符来生成我的查询一样安全。我不使用任何文字,也不使用解析器来生成我的查询。 – aRs3nIc 2013-03-11 14:35:40
根据手册['gda_sql_builder_get_statement'](https://developer.gnome.org/libgda/unstable/GdaSqlBuilder.html)返回一个'GdaStatement',只要没有文字值被传递,你就可以。检查返回的对象以验证参数是如何呈现的。 – 2013-03-11 14:41:52