我正在使用(满意地)来自Android应用程序的一些Web服务。
我使用https(我买了SSL证书)。
我希望阻止其他知道我的网络服务网址的不受欢迎的访问。
我使用应用程序必须提供给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
答案 0 :(得分:1)
你根本做不到这一点。你应该混淆你的代码。这是软件开发者与破解者之间的旧战争
你无法阻止某人使用/分析驻留在客户端的代码,但是你可能会难以理解,几乎所有人都会放弃这样做,因为它太难以利用你的代码。