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