Live data from Hacker News

Domino's: Pizza and Payments

ifc0nfig.com

11–20 of 58 posts

Re: Domino's: Pizza and Payments

#11
post #2

My interest is certainly peaked about the 10% off coupons.

I've read that the real discounts are in calling the location directly and asking about "walk-in specials." The franchisee doesn't have to yield as much revenue to the mothership when you avoid centralized ordering and thus can extend more price flexibility.

Re: Domino's: Pizza and Payments

#12
I'm waiting for Pizza Hut to show up next. I refuse to let them save my CC number because their password policy basically ensures that you can't choose a reasonable password.

And if the obvious, public part of the site is like that, I can only wonder what hackers would find probing deeper.

Re: Domino's: Pizza and Payments

#13

client-side payments is totally normal, when done right, unlike dominos's's buggy version -- what usually happens is that the vendor sends you to a payment processor, and you pay them, and the payment processor sends a verification token to the vendor , and the vendor delivers your product to you. Domino's skipped one critical step.

> ... and the payment processor sends a verification token to the vendor

I would just add one more critical step: the vendor actually verifies the verification token rather than just checking that it exists (since the token is often passed through the client, it can't be inherently trusted either). This should involve either hitting the processor's server or verifying a cryptographic signature, and verifying that the payment associated with the token matches what the vendor expects.

Re: Domino's: Pizza and Payments

#14

Why doesn't Google do more to prevent Android apps from being decompiled, inspected and recompiled into modified apps? Yes, there's source code obfuscation, but that only slows down the amateurs.

Because it's not an arms race that can be won? And in most cases, it's a complete waste of time to try?

Re: Domino's: Pizza and Payments

#15

Why doesn't Google do more to prevent Android apps from being decompiled, inspected and recompiled into modified apps? Yes, there's source code obfuscation, but that only slows down the amateurs.

What about this?

> Why doesn't Microsoft do more to prevent C# apps from being decompiled, inspected and recompiled into modified apps?

There's not much you can do when you have a very simple interpreted language (or JITed). Take C for example. Sure, you can take the outputted assembly and turn it into something readable, but because it's been optimized, it's not easy to figure out what it means. C# and Java OTOH compile down to a very simple set of assembly instructions. AFAIK, "stack variables" aren't reused as each variable is referenced by its index. If you were to take the JITed output from CIL or Java bytecode, making something readable would be hard.

Re: Domino's: Pizza and Payments

#17
post #10
post #2

My interest is certainly peaked about the 10% off coupons.

Always 25% off with PapaJohns! Use coupon code 25OFF — it's even valid until December 31, 2017. Unless you mean how they're generated.

Just like pizza tastes better when you made it yourself, it is sweeter when you were able to code your own working coupon generator.

Re: Domino's: Pizza and Payments

#18
It's not that processing payment client-side is wrong, it's that the Dominos app implement it wrongly, or DataCash simply doesn't provide any security feature for protecting against http request data tampering, which I believe the latter is not the case.

Most payment gateway have a security mechanism to ensure the response from payment server have its integrity remain intact. Most of the time by hashing some combination of responses value and shared secret key between merchant and the payment server, and comparing if both marchant calculated value and payment server hash matches. If it doesn't match, then it is safe to to throw an error and prompt appropriate message to said attacker. When implemented as such, the system are expected to immune to such attack as described by the author.

The article is a perfect case study to showcase the consequences when the developer decided to skip the security part. (yes it's entirely up to the web master if they want this or not, the payment server won't care).

Re: Domino's: Pizza and Payments

#19

Why doesn't Google do more to prevent Android apps from being decompiled, inspected and recompiled into modified apps? Yes, there's source code obfuscation, but that only slows down the amateurs.

That depends on how well the obfuscator works and scrambles your code. Does it rename ALL classes, variables, methods and constants to gobbledygook? Does it add redundant code every now and then to add more confusion? If you do all that, then it becomes very difficult to crack even for advanced hackers. But ultimately it should be possible as obfuscation is based on a human logic (though executed by machines) - but it will certainly increase the needed difficulty and dedication to a considerable degree.

Re: Domino's: Pizza and Payments

#20
post #18

It's not that processing payment client-side is wrong, it's that the Dominos app implement it wrongly, or DataCash simply doesn't provide any security feature for protecting against http request data tampering, which I believe the latter is not the case. Most payment gateway have a security mechanism to ensure the response from payment server have its integrity remain intact. Most of the time by hashing some combinat…

> Most payment gateway have a security mechanism to ensure the response from payment server have its integrity remain intact.

I've definitely seen SSL pinning used to this effect. The simple solution to Dominos' problems seems like a server-verifiable transaction token that coming from DataCash (or whatever gateway service). I agree that client-side payment processing isn't wrong -- in fact, it makes more sense than attempting PCI compliance on their middleman server.

Post reply on HN