0

我正在(满意地)使用来自 Android 应用程序的一些 Web 服务。

我使用 https(我购买了 SSL 证书)。

我想防止其他知道我的 Web 服务 url 的人进行不必要的访问。

我使用应用程序必须向 Web 服务方法提供的“密钥”,但它存储在代码内的常量变量中,我知道这不是确保安全性的最佳解决方案。

Android 网络服务调用(使用 ksoap):

try {
    SoapObject request = new SoapObject(configuration.getNamespace(), methodName);

    request.addProperty("securityKey", SECURITY_KEY);

C# 网络服务

[WebMethod]
public string UserRegistraion(string securityKey, string data)
{
    if (securityKey != Environment.SecurityKey)
    {
        return "WRONG_KEY";
    }

实现最终解决方案的最佳方法是什么?

编辑:

正如有人建议的那样,我也在security.stackexchange.com上问了同样的问题

https://security.stackexchange.com/questions/30850/web-services-how-prevent-illegal-accesses

4

1 回答 1

1

你根本无法做到这一点。你应该混淆你的代码。这是软件开发人员与破解者之间的老战场

你不能阻止某人使用/分析驻留在客户端的代码,但是你可以让它变得困难,几乎所有人都会放弃这样做,因为利用你的代码太难了。

于 2013-02-13T14:49:18.670 回答