当前位置:  开发笔记 > 前端 > 正文

sqlite3_bind_text是否足以阻止iPhone上的SQL注入

如何解决《sqlite3_bind_text是否足以阻止iPhone上的SQL注入》经验,为你挑选了1个好方法。

鉴于声明:

const char *sql = "INSERT INTO FooTable (barStr) VALUES (?)";

以下使用sqlite3_bind_text(和相关sqlite3_bind_*函数)是否足以防止SQL注入攻击?

sqlite3 *db; 
sqlite3_stmt *dbps;

int dbrc = sqlite3_open([dbFilePath UTF8String], &db); 
if (dbrc) { 
    // handle error
    return; 
} 

dbrc = sqlite3_prepare_v2 (db, sql, -1, &dbps, NULL);

sqlite3_bind_text(dbps, 1, [userContent UTF8String], -1, SQLITE_TRANSIENT);

dbrc = sqlite3_step(dbps);
if (SQLITE_DONE != dbrc) {
    // handle error
}

sqlite3_finalize (dbps); 
sqlite3_close(db); 

cmeerw.. 13

是的,如果您只将用户提供的数据传递给sqlite3_bind_*函数,那么您就可以免受SQL注入攻击(这些攻击假设您动态构建查询字符串并且不会正确引用/转义用户提供的数据).



1> cmeerw..:

是的,如果您只将用户提供的数据传递给sqlite3_bind_*函数,那么您就可以免受SQL注入攻击(这些攻击假设您动态构建查询字符串并且不会正确引用/转义用户提供的数据).


您能指出一些文档,以确保sqlite3_bind_text函数可以免受SQL注入攻击吗?我没有在文档中找到任何暗示绑定将过滤某些字符的提示?(http://www.sqlite.org/c3ref/bind_blob.html)
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有