![](/img/trans.png)
[英]Is SQL Server's full text search CONTAINS() vulnerable to SQL Injections?
[英]Gnome's libgda and SQL injections
我正在使用Gnome数据访问(libgda)访问C程序中的数据库。 我使用GdaSqlBuilder构建查询。 这是一个示例代码,用于在请求的字段上添加相等条件:
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之前自行清理输入?
预先感谢您的回答。
在前言中对此进行了解释:
创建包含值(文字)的SQL字符串时,可以尝试创建一个包含值本身的字符串,执行该语句,并在下次需要使用相同的语句时应用相同的过程(因为这是最简单的解决方案)。用不同的值执行。 这种方法具有以下两个主要缺陷,这就是为什么Libgda建议在语句中使用变量(也称为参数或占位符)并在仅变量值发生更改时重用同一GdaStatement对象的原因。
即使当前版本不容易受到攻击,也不意味着每个将来的版本都不会受到攻击。 您应该始终无一例外地照顾用户提供的东西。
来自其他任何类型的系统的接口也是如此。 这不仅限于SQLi,也不是SQLi或您使用的库的问题。 您有责任使用户只能输入您希望其输入的种类数据,否则将拒绝该数据。 您不能依靠其他代码为您执行此操作。
通常:没有什么可以完全保护自己免受某种类型的攻击。 它将始终限于撰写本文时已知的攻击向量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.