-
Notifications
You must be signed in to change notification settings - Fork 795
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate Receipt - Security issue #75
Comments
I don't have server. I using locally validation |
As i could see, you are validating the receipt remotely, using this from the device: If you would like to validate the receipt locally, you may use OpenSSL. https://www.objc.io/issues/17-security/receipt-validation/ Regards |
This is definitely a security issue. I was actually just watching the WWDC video titled Using Store Kit for In-App Purchases with Swift 3. In that video, Dana, the presenter, discusses never calling the There are ways to validate the receipt on the device and he discusses these in this video. The links @andresmontelpare shared are very helpful as well. |
Also looking forward to local receipt verification, because for now if I want to check for an auto-renewable validation I can't do it if for ex. the user is not connected to the internet. Thanks in advance @bizz84 for the update. SwiftyStoreKit truly is the best wrapper I found. |
@bizz84 It means InAppReceipt.base64EncodedString should public to some Guys . because they need verify receipt with server instead call local verify receipt func |
I use a node.js server to verify every in app purchase. Having security related background I would never consider using the app (client) to verify a receipt. Never trust the client. To clear a misunderstanding; when Apple say "use an independent server to verify" then are not talking about direct connection to https://buy.itunes.apple.com/verifyReceipt but your own custom serevr. App --> Server --> Apple (https://buy.itunes.apple.com/verifyReceipt) |
@cherishloveyou From version 0.5.4, it is now possible to get the local receipt data by calling |
@rebeloper I opened #101 to keep track of local receipt validation. |
Closing this as local receipt validation is tracked here: #101 |
There are two ways to validate a receipt properly. Locally or via App Store from a server.
https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Introduction.html
"Use a trusted server to communicate with the App Store. Using your own server lets you design your app to recognize and trust only your server, and lets you ensure that your server connects with the App Store server. It is not possible to build a trusted connection between a user’s device and the App Store directly because you don’t control either end of that connection."
In the way you are doing, you may have security problems.
The text was updated successfully, but these errors were encountered: