Braintree a prapodivné requesty na doménu example.com

V jedné z aplikací na iPhone jsme implementovali platební systém Braintree. Vcelku pěkná věc a jednoduchá na implementaci. Jak na straně klienta (iPhone aplikace), tak na straně backendu (Ruby). “Neřeší” se security, nikde se nic neukládá, všechno je v režii Braintree a my jenom posíláme speciální tokeny. Fakt pěkný. Po otestování jsem zavřel ticket a po pár dnech mi to QA hodilo zpátky na hlavu. Že se objevují zvláštní requesty na doménu example.com.

Nejdřív hledám v kódu aplikace řetězec example.com. Nic. Stejný řetězec hledám v kódu backendu. Nic. Tak se pomocí Charlese dívám na ten request detailněji a vidím, že se sice posílá z appky, ale my sami ho nikde neposíláme. Máme totiž speciální User-Agent hlavičku a v tomhle requestu byla jiná. Tak si requesty seřadím chronologicky a koukám, že example.com se volá v době, kdy vybírám uloženou kreditní kartu a k lizu se dostává Venmo Touch.

K tomu nemám zdrojáky, ale to nevadí. Tak si dumpnu binárku, hledám nějaký náznak example.com a opět nic. Fakt divný. Oukej, píšu na support Braintree. A jejich odpověď …

Hi Robert,

This request comes from the Venmo Touch servers, which is why you couldn’t find it in the client-side code. When the card picker screen loads, it requests information from VT about various other things to load, including [the app icons in the How it Works modal.](https://assistly-production.s3.amazonaws.com/venmohelp/portal_attachments/111230/cHdUQ_original.png?AWSAccessKeyId=AKIAJNSFWOZ6ZS23BMKQ&Expires=1392152152&Signature=HBP2YTEQRWF9Hlhz6WxZIgHxcaU%3D&response-content-disposition=filename%3D%22cHdUQ.png%22&response-content-type=image%2Fpng) These icons are stored in S3, but have a default url on [example.com](http://example.com/) until they’re specified in the database. Icons that are on S3 get cached, which is why you aren’t seeing those requests; in addition, if all of the icons in that modal are present, you wouldn’t see any calls to [example.com](http://example.com/).

Hope this helps to clarify- it’s a bit convoluted. If you have any questions about this, or if the calls to [example.com](http://example.com/) will be a problem in your app, let me know and we’ll work with you to help.

Best,
*******
Braintree Developer

Úplně nadšený z odpovědi nejsem a raději se ujišťuji …

Hi *******,

thanks. In other words, I can safely ignore them, right? If yes and no sensitive information are forwarded to this domain, it’s probably okay.

Robert

… a dostává se mi potvrzení …

Hi,

That’s correct, you can ignore them. They’re just calls to a placeholder URL for some images. Sounds like you’re good to go!

Happy processing,
*******

Takže až budete hledat proč aplikace posílá prázdné requesty na doménu example.com, tady máte odpověď. Zcela upřímně bych podobné chování od platebního systému nečekal, ale v současné době s tím nic nenadělám a když je to podle nich okay …

P.S. Jinak ano, v iPhone aplikaci je možné používat platební bránu třetích stran a to pouze za předpokladu, že člověk platí za zboží, které fyzicky obdrží. Což je náš případ.