gpt4 book ai didi

android - Android客户端和PHP服务器之间的加密

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:53 25 4
gpt4 key购买 nike

在加密方面,我完全是个新手,我认为我的问题全错了,让我解释一下:

我希望 Android 应用程序联系服务器以获取要在应用程序中显示的项目。然后,如果用户与该项目进行交互,我想向服务器发送反馈,告知已单击哪个项目以将其保存在数据库中。

首先,我不希望任何人在将这些“反馈”发送到服务器时通过网络“拦截”这些“反馈”。所以我决定使用 https 连接。但是假设我要求反馈的脚本是 https://mydomain.com/myscript.php (带有 POST 请求)。我不希望有人对我的 Android 代码进行逆向工程并看到我正在调用此脚本来发送反馈,因为这样他就可以将它用于相同的目的。

然后我想“嘿,当我必须向服务器发送反馈时,让我们从服务器获取一个 key 并将其发回”。但是同样,要获得这个 key ,我需要调用一个 php 脚本,如果有人可以调用这个脚本,获得 key ,他就可以根据需要发送反馈。

在我看来,这似乎没有尽头。而且我知道有一个 :D 我认为我正在以完全错误的方式看待这个问题。您是否有一些准则可以遵循?

谢谢!

最佳答案

不要相信客户

您不能将信任扩展到客户端软件。 Viega 和 McGraw 在“构建安全软件:如何以正确的方式避免安全问题”中有一段很好的引用。

People commonly hide secrets in client code, assuming those secrets will be safe. The problem with putting secrets in client code is that talented end users will be able to abuse the client and steal all its secrets. Instead of making assumptions that need to hold true, you should be reluctant to extend trust. Servers should be designed not to trust clients, and vice versa, since both clients and servers get hacked. A reluctance to trust can help with compartmentalization.

解决方案

您不能信任客户端软件。但有时您可以信任个人用户。你可以删除垃圾邮件。需要考虑的事项:

  1. 使用 spam classifier 检测垃圾帖子.这需要一些时间。
  2. 您可以对来自单个 IP 地址的 POST 进行速率限制
  3. 您可以要求用户登录您的应用才能撰写反馈。然后限制来自特定帐户的反馈。
  4. 更好的是,您可以要求人们首先使用 Google+ 或 facebook 的服务器对自己进行身份验证(即,您的应用请求用户使用 authenticate their Google credentials 。这对他们来说应该很轻松,因为 95% 的 Android 用户都拥有 Google 凭据。)发帖前。然后对每个帐户进行速率限制。大多数机器人无法访问许多/任何虚假的 facebook/Google+ 帐户,因为您必须破解 captchas以便注册。这应该会使机器人很难发帖。

大公司结合使用 4、3 和 1。Google Play 商店曾尝试检测所有垃圾评论并将其删除。但现在他们也使用#4。您无法在未登录的情况下在 Google Play 商店上发表评论!

编辑:这也可能有用 http://android-developers.blogspot.ca/2013/01/verifying-back-end-calls-from-android.html?m=1

关于android - Android客户端和PHP服务器之间的加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com