Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于Android应用内计费验证机制_Android - Fatal编程技术网

关于Android应用内计费验证机制

关于Android应用内计费验证机制,android,Android,在Android应用内计费示例代码中,验证逻辑写在应用中,从market服务器返回的json字符串只是人类可以理解的纯文本形式,没有任何加密。 如果有人非常精通反编译,那么整个验证将非常脆弱。此外,验证只保证向市场服务器付款的交易过程,而忽略了交易或虚拟商品交付的安全性,这就产生了我们如何保证app与我们自己的服务器之间计费的安全验证的问题,例如,防止在将market服务器返回的购买状态发送到我们自己的服务器之前故意更改它?对于从android market购买,您需要提供一个nonce。这个n

在Android应用内计费示例代码中,验证逻辑写在应用中,从market服务器返回的json字符串只是人类可以理解的纯文本形式,没有任何加密。
如果有人非常精通反编译,那么整个验证将非常脆弱。此外,验证只保证向市场服务器付款的交易过程,而忽略了交易或虚拟商品交付的安全性,这就产生了我们如何保证app与我们自己的服务器之间计费的安全验证的问题,例如,防止在将market服务器返回的购买状态发送到我们自己的服务器之前故意更改它?

对于从android market购买,您需要提供一个nonce。这个nonce只是一个随机的长值。JSON包含基于nonce的nonce,您可以验证它是否由您发送。

应用程序将由您签名您的公钥。用户必须知道这一点才能与market通信。如果黑客更改了其他信息,例如应用程序中JSON字符串中的购买状态,该怎么办?我自己的服务器无法确定其有效性。黑客可能会捕获公钥,即使我在反编译我的应用程序的apk后从我的服务器将其发送到应用程序?不,我的意思是在反编译你的apk后,apk需要用公钥重新签名,公钥必须是你的,这样只有市场才会将其识别为有效。而且你不需要发送公钥。如果你提到过google的示例.All logic security.java必须是服务器端的。