小智 5
1)是的,无论平台如何,您需要清理来自不受信任来源的任何输入(来自用户,另一个系统,另一个应用程序等 - 任何未硬编码到您的应用程序中的内容).
2)是的,在访问SQLite数据库时(直接或通过内容提供商),您需要在Android中执行此操作.
3)在将SQL命令用于数据库之前对输入进行清理是必要的,但它无法阻止所有形式的SQL注入.防止这种情况的最佳策略是使用参数化查询,它允许数据库区分数据的意义和命令的意图,因此即使输入错误并且SQL命令出现在数据中也是如此,数据库知道将它们视为数据.在标准Java编码中,这涉及使用PreparedStatements.在SQLite/Android中,您需要使用compileStatement用数据占位符创建查询(从不受信任的输入派生的内容)并用于bindString设置这些占位符.
在优秀的OWASP SQL注入写入中有关于此的更多信息.
| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |