我正在Objective-C中创建一个iPhone应用程序(如果这很重要),我使用SQLite存储。我想清理数据库输入以防止用户执行类似
的操作Robert'); DROP TABLE Students; --
在C或Objective-C中执行此操作的最佳方法是什么?
我尝试用'
替换''
,但我确信这还不够。
答案 0 :(得分:12)
最好的办法是永远不要在任何情况下,即使在那些你只是知道的特殊情况下,它会更容易但是真的很认真我的意思是这不要通过以下方式构造SQL语句将参数值连接到语句中。使用参数标记并将值绑定到标记。这是避免SQL注入攻击的方式。其他一切都是浪费时间和精力,因为对于你用户输入的参数中你想改变/修改/检查的每一件事,有人会想到事物N + 1。
分享并享受。