【发布时间】:2009-07-27 08:52:20
【问题描述】:
如何在 iPhone 中为 SQLite 编写准备好的语句?是否可以在使用 sqlite db 的 iPhone 应用中进行 SQL 注入?
【问题讨论】:
标签: iphone sql sqlite prepared-statement
如何在 iPhone 中为 SQLite 编写准备好的语句?是否可以在使用 sqlite db 的 iPhone 应用中进行 SQL 注入?
【问题讨论】:
标签: iphone sql sqlite prepared-statement
我建议,如果您现在开始开发 iPhone 应用程序,您可能应该使用 Core Data,而不是直接编码到 SQLite。话虽如此,创建一个准备好的语句很简单,well documented:
sqlite3_stmt* statement_handle;
sqlite3_prepare_v2(db, "select a,b from Table where c = ?", -1, &statement_handle, NULL);
是的,在编码错误的应用程序中可能会发生 SQL 注入攻击。使用准备好的语句可以避免这种情况。
【讨论】:
除了 Core Data,我还建议查看更高级别的 iPhone SQLite 库,例如:FMDB
【讨论】: