【发布时间】:2018-07-17 05:14:59
【问题描述】:
最近,虽然我的 android 应用程序审计员的源代码审计提出了一些问题,如路径操纵、隐私侵犯攻击?
从最近几天开始,我一直在寻找合适的解决方案,但找不到任何富有成效的解决方案。请为我提供以下查询的解决方案。
1. File f = new File("filepath");
如何防止攻击者操纵文件路径?
2. private void selectDataFromDB(String param1,String param2){
sqlitedatabase.query("Select * from tbl1 where col1 LIKE ? and colu2 LIKE ?",new String[]{param1,param2});
}
如何验证参数以使攻击者无法更改此参数? 输入消毒 ?如何申请?
编辑1:
MyActivity.java 中的方法selectDataFromDB() 错误处理机密信息,这可能会损害用户隐私并且通常是非法的。
【问题讨论】:
-
我认为你需要问更清楚的问题。虽然 select * 在数据库上有点糟糕(您应该请求列名),但只要您使用绑定变量(就像您一样),SQL 语句就可以了。您可能应该添加一个空检查,可能是对空字符串的检查(除非您认为所有内容都匹配),但 SQL 没问题。
-
非常感谢@GabeSechan。在调用此类方法之前,我已经检查了参数是否为 null,但审计人员认为它不合适。请帮我摆脱它。我已经更新了我的问题。
-
然后问问你是审计员有什么问题。因为我没有看到任何合适的东西。如果您实际上是在与审核员交谈,他们会告诉您原因是什么。但是那里没有sql注入的风险。根据您的编辑,我最好的猜测是您使用 * 请求的信息太多,而他们希望您请求的信息更少。
-
他们建议我应用输入清理。我检查了多个链接,但找不到任何东西。在 php 中有一个默认函数可以检查特殊字符,但在 android 中没有。
标签: android sql-injection privacy input-sanitization path-manipulation