我想要创建一个收集信息然后上传到服务器的android应用程序 - 但是我不希望人们在发送到服务器之前能够编辑该文件。我可以做它的第一部分,但不能做第二部分。任何人都可以告诉我有关这方面的最佳方法吗?我不介意用户是否知道文件中的内容,只是不希望他们编辑它,然后将编辑的信息上传到服务器。如何确保文件从电话到服务器不被篡改?
回答
由于应用程序由用户运行并且输出由用户控制,因此您几乎不走运。你可以接管用户系统的唯一方式,以至于他无法控制它,将会使用trusted computing以及所有的道德和哲学含义 - 例如见。 Richard Stallman的Can You Trust Your Computer?。唯一可以希望的是在服务器和用户系统(SSL/TLS)之间建立安全连接,但这仍然是您无法控制的系统的用户的系统。
一些粗略的想法:
,您可以查看正在被发送到服务器给用户的信息,然后ZIP多数民众赞成正在用密码发送文件事先所以用户不会得到一个机会来编辑它:
Write a password protected Zip file in Java
当然,你必须确保用户不知道密码...
或者你可以构建符合发送的文本的校验和验证校验和e服务器。在这里,你必须确保用户不知道如何构建校验和并相应地改变它。
或者,您无法将信息安全地保存到文件中,除非进入应用程序的数据库或私有文件空间(非root用户无法访问它)。
无论是密码还是校验和,您都可以使用正常的HTTP请求将该信息发送到服务器,以便用户不会看到该信息(随后是实际发送文件的第二个请求) ,但如果我们谈论的是知道如何处理他们手机中的网络嗅探器的用户(需要root,AFAIK),那么运气不好,这是他们的设备和他们的数据,毕竟它试图离开它:)
你可以尝试使用安全连接来解决这个问题。
有一对夫妇的方法,你可以在这里使用:
- 加密,然后将文件保存它的设备,用户将无法读取/修改。
- 加密到服务器的连接,SSL可以防止第三方干扰它。
- 不要将文件保存在公共位置,请将其放在应用程序的专用数据目录中。用户将无法访问它。
取决于这些信息将决定使用哪种方法的组合。
至于Android,您无法阻止人们访问公共文件系统上的文件。
也许有更好的方法来处理这个问题,但我会在提交之前简单地对数据进行加密和解密,并使用密码或某种奇偶校验来验证数据。
你可以做什么:
- 注册文件与应用程序
- 检查服务器上的签名,检查证书是否被授权
这将有助于证书有点,但你仍然有私钥与你的应用程序捆绑...有人可能能够找到它,然后签署修改后的文件...
另一个想法:你可以计算数据还是用户生成?如果计算出来,为什么不计算数据并将其发送到服务器(通过SSL),甚至无需将其写入文件系统?
这里唯一正确的答案是Zed's。
答案的其余部分依赖于Security through obscurity。底线是:如果设备没有完全锁定(=可信计算),那么用户可以逆向设计应用程序/文件格式/网络协议并提交错误数据。 (DVD,BluRay,游戏机等等),但最终有能力的工程师在最低预算的情况下能够打破这种情况保护计划。
所以,它可能工作,但只有当数据不重要,没有人打扰它打破它。
- 1. 如何确保表在SQL Server 2008中不被篡改?
- 2. 如何确保数据库中的产品ID不被篡改
- 3. 如何确保服务器上的文件没有被同名文件覆盖
- 4. 许可证执法系统已被篡改 - win服务器2008
- 5. 如何将.pdf文件从服务器保存到客户端?
- 6. 如何确保从服务器端返回的img不被拦截
- 7. ajaxuploader如何将文件保存到不同的服务器
- 8. 如何确保从服务器添加回应到ember store
- 9. 将文件发送到带有手机电话的服务器
- 10. 打电话从服务器端回发
- 11. 如何将文件从Linux(informatica服务器)发送到文件服务器(windows)
- 12. 如何将文件从服务器文件系统上载到SQL服务器
- 13. 如何确保调制解调器已连接到电话线
- 14. Couchbase服务器到iOS电话
- 15. 如何确保只有一台服务器读取CAMEL文件?
- 16. 如何确保服务从特定活动中被调用
- 17. 从服务器保存html文件
- 18. iPhone:将大型文件从电话上传到服务器的策略
- 19. 如何在Windows电话确保XML文件7
- 20. 如何确保发送到服务器的GPS位置准确?
- 21. 保存文件到FTP服务器
- 22. 将文件从服务器附加到电子邮件
- 23. 如何从owin服务woff2文件文件服务器
- 24. 确保所有文件都上传到网络服务器
- 25. 如何将电子邮件从qmail发送到LMTP服务器?
- 26. 如何显示文件对话框与csv流从服务器
- 27. 确保恶意apk不与我的服务器通话
- 28. 从服务器拨打电话 - 有哪些服务?
- 29. AndroidDebugKey密钥库被篡改,或密码不正确
- 30. 密钥库已被篡改或密码不正确
不起作用。用户可以对应用程序进行反向工程并获取密码,而不是生成他们自己的编辑后的zip文件。 – 2011-02-28 14:33:04