我将创建一个将使用我正在开发的Web服务的应用程序(iOS和Android)。我将使用HTTPS和SSL,以便从应用程序发送到服务器的数据是安全的。但是,如何阻止(或者让那些反编译应用程序的人的生活)“黑客”反编译URL所写的源代码?
我不希望其他人创建使用我的数据的应用程序。
我的应用的用户必须注册并登录才能使用它。我已经阅读了有关验证用户身份并传回密钥的方法(Facebook的方式)。但是,这不意味着“黑客”可以注册然后使用相同的密钥吗?您是否需要跟踪每个密钥的使用情况以寻找不规则用途?
服务器技术是Java EE或Scala(Lift)。
答案 0 :(得分:4)
首先:您在不受您控制的设备上运行的任何内容(例如您的iOS和Android设备)都没有100%的安全性。
你可以通过几种措施使“滥用”变得更加困难:
如果你真的想要非常努力,你可以发布特定于设备的客户端证书并使用基于证书的客户端身份验证(在SSL标准中定义) - 如果你看到滥用,你可以使与设备相关的证书无效对其他设备的合法用户没有伤害......
答案 1 :(得分:2)
这或多或少是不可能的。您可以使用字节码混淆来使反编译更难,但任何努力尝试的人都可以看到代码正在做什么。
如果您允许向您无法信任的人访问数据,那么您可以做的唯一事情就是
还要考虑是否可以执行更多服务器端处理,以便将更少的原始数据发送到客户端。我不知道你的数据是什么样的,但是以地图为例,如果发送预渲染的位图而不是某些纬度/经度矢量数据,那么提取任何有用的东西都是很多更难的工作