如何在C或Objective-C中清理数据库输入?

时间:2011-03-31 16:24:21

标签: sql objective-c c sqlite sql-injection

我正在Objective-C中创建一个iPhone应用程序(如果这很重要),我使用SQLite存储。我想清理数据库输入以防止用户执行类似

的操作
Robert'); DROP TABLE Students; --

在C或Objective-C中执行此操作的最佳方法是什么?


我尝试用'替换'',但我确信这还不够。

1 个答案:

答案 0 :(得分:12)

最好的办法是永远不要在任何情况下,即使在那些你只是知道的特殊情况下,它会更容易但是真的很认真我的意思是这不要通过以下方式构造SQL语句将参数值连接到语句中。使用参数标记并将值绑定到标记。这是避免SQL注入攻击的方式。其他一切都是浪费时间和精力,因为对于你用户输入的参数中你想改变/修改/检查的每一件事,有人会想到事物N + 1。

分享并享受。