【发布时间】:2013-02-01 16:29:06
【问题描述】:
在加密方面我完全是个菜鸟,我认为我的问题完全错了,让我解释一下:
我希望 Android 应用程序联系服务器以获取要在应用程序中显示的项目。然后,如果用户与此项目交互,我想向服务器发送反馈,告诉服务器单击了哪个项目以将其保存在数据库中。
第一件事是我不希望任何人在将这些“反馈”发送到服务器时通过网络“拦截”这些“反馈”。所以我决定使用https连接。但是假设我要求反馈的脚本是https://mydomain.com/myscript.php(带有 POST 请求)。我不希望有人对我的 Android 代码进行逆向工程并看到我正在调用此脚本来发送反馈,因为这样他就可以将它用于相同的目的。
然后我想“嘿,当我必须向服务器发送反馈时,让我们从服务器获取一个密钥以将其发送回去”。但同样,要获得这个密钥,我需要调用一个 php 脚本,如果有人可以调用这个脚本,得到密钥,他就可以根据需要发送反馈。
在我看来,这似乎没有尽头。而且我知道有一个 :D 我认为我正在以完全错误的方式看待这个问题。您是否有一些指导方针可以遵循?
谢谢!
【问题讨论】:
-
根本不可能让你的应用做某事而阻止用户直接做。
-
我认为你过于偏执了。我不明白您为什么需要为此使用 HTTPS 和大量加密?
-
所以本质上你的担心是你不想要用户的无效反馈?防止这种情况的唯一方法是采用某种形式的服务器端验证。没有什么是万无一失的,但也许可以从跟踪哪些元素提供给可以提供反馈的用户开始。这样,用户对最近未提供的元素的任何反馈都将被视为无效? 也就是说,我同意 Simon & SLaks 的观点,因为你可能过于偏执了。
-
是的 TheCapn,这些反馈很重要,我希望它们是来自应用程序的实际反馈,而不是来自使用机器人的人 :D 但既然你们三个说我过于偏执,我将尝试在服务器端检测“假”反馈。只是我认为有一种适当的方法可以做到这一点,因为我在编程生活中绝对从未使用过任何安全性:D 非常感谢!
-
@simon-andre-forsberg,我不认为他过于偏执!弄清楚应用程序发出的帖子请求非常容易。对于一个小型实验应用程序来说,这无关紧要。但是,如果您将应用程序作为/用于企业,这一点很重要。
标签: android encryption https