验证SQL注入目标c的输入

时间:2014-07-31 07:16:27

标签: ios objective-c sql-injection

我正在寻找可以执行用户输入完整性的iOS应用程序代码,尤其是在目标c上验证SQL注入的输入。

2 个答案:

答案 0 :(得分:2)

对用户生成的输入使用绑定变量将避免任何SQL注入。但是,如果使用[NSString stringWithFormat:]创建SQL语句,那么您将始终容易受到此类攻击。

这是使用绑定变量的示例,取自here

const char *sql = "INSERT INTO data(coltext, colint, coldouble) VALUES(?,?,?)";
sqlite3_prepare_v2(db, sql, 1, &stmt, NULL);
sqlite3_bind_text(stmt, 1, [txt UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(stmt, 2, integer);
sqlite3_bind_double(stmt, 3, dbl);
sqlite3_step(stmt);
sqlite3_finalize(stmt);

那里有很多很多例子。

答案 1 :(得分:1)

如果使用输入验证技术,可以防止SQL注入,在该技术中,用户输入根据一组定义的长度,类型和语法规则以及业务规则进行身份验证。     正确处理用户输入数据,例如删除特殊字符。     通过使用带有占位符替换标记的强类型参数化查询API。

有关详细信息,请查看此How to prevent SQL Injection in iOS apps