{"id":36848,"date":"2022-08-24T15:09:35","date_gmt":"2022-08-24T19:09:35","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=36848"},"modified":"2022-08-24T15:09:35","modified_gmt":"2022-08-24T19:09:35","slug":"see-what-javascript-commands-get-injected-through-an-in-app-browser","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2022\/08\/24\/see-what-javascript-commands-get-injected-through-an-in-app-browser\/","title":{"rendered":"See What JavaScript Commands Get Injected Through an In-App Browser"},"content":{"rendered":"<p><a href=\"https:\/\/krausefx.com\/blog\/announcing-inappbrowsercom-see-what-javascript-commands-get-executed-in-an-in-app-browser\">Felix Krause<\/a> (<a href=\"https:\/\/twitter.com\/KrauseFx\/status\/1560370732705742848\">tweet<\/a>, <a href=\"https:\/\/news.ycombinator.com\/item?id=32514793\">Hacker News<\/a>, <a href=\"https:\/\/www.macrumors.com\/2022\/08\/18\/felix-krause-in-app-browser-javascript-tool\/\">MacRumors<\/a>):<\/p>\n<blockquote cite=\"https:\/\/krausefx.com\/blog\/announcing-inappbrowsercom-see-what-javascript-commands-get-executed-in-an-in-app-browser\"><p><a href=\"https:\/\/krausefx.com\/blog\/ios-privacy-instagram-and-facebook-can-track-anything-you-do-on-any-website-in-their-in-app-browser\">Last week I published a report<\/a> on the risks of mobile apps using in-app browsers. Some apps, like Instagram and Facebook, inject JavaScript code into third party websites that cause potential security and privacy risks to the user.<\/p><p>[&#8230;]<\/p><p>Introducing <a href=\"https:\/\/InAppBrowser.com\">InAppBrowser.com<\/a>, a simple tool to list the JavaScript commands executed by the iOS app rendering the page.<\/p><p>[&#8230;]<\/p><p>Just because an app injects JavaScript into external websites, doesn&rsquo;t mean the app is doing anything malicious. There is no way for us to know the full details on what kind of data each in-app browser collects, or how or if the data is being transferred or used.<\/p><p>[&#8230;]<\/p><p>While you are interacting with the website, TikTok subscribes to all keyboard inputs (including passwords, credit card information, etc.) and every tap on the screen, like which buttons and links you click.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/rjonesy\/status\/1560380093037531140\">Ryan Jones<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/rjonesy\/status\/1560380093037531140\">\n<p>But they promise they don&rsquo;t use it. &#x1F923;<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/DamienPetrilli\/status\/1561236356109664256\">Damien Petrilli<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/DamienPetrilli\/status\/1561236356109664256\">\n<p>So Apple is now aware that Tiktok has a key logger in their App, and they are still in the App Store.<\/p>\n<p>Feeling safe yet?<\/p>\n<\/blockquote>\n\n<p>TikTok shouldn&rsquo;t be rejected just for registering JavaScript key handlers. The takeaway is that it&rsquo;s not possible for Apple to reliably detect this sort of nefarious behavior, so they shouldn&rsquo;t represent that they do or use that as justification for locking into their payments system.<\/p>\n\n<p><a href=\"https:\/\/pxlnv.com\/linklog\/in-app-browser-privacy\/\">Nick Heer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pxlnv.com\/linklog\/in-app-browser-privacy\/\">\n<p>Is TikTok a keylogger? Is Instagram monitoring every tap on a loaded webpage? It is impossible to say, but it does not look good that either of these privacy-invasive apps are so reckless with users&rsquo; ostensibly external activity.<\/p>\n<p>It reminds me of when iOS 14 revealed a <a href=\"https:\/\/arstechnica.com\/gadgets\/2020\/06\/tiktok-and-53-other-ios-apps-still-snoop-your-sensitive-clipboard-data\/\">bunch of apps<\/a>, including TikTok, were automatically reading pasteboard data. It cannot be known for certain what happened to all of the credit card numbers, passwords, phone numbers, and private information collected by these apps.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/krausefx.com\/blog\/announcing-inappbrowsercom-see-what-javascript-commands-get-executed-in-an-in-app-browser\">Felix Krause<\/a>:<\/p>\n<blockquote cite=\"https:\/\/krausefx.com\/blog\/announcing-inappbrowsercom-see-what-javascript-commands-get-executed-in-an-in-app-browser\"><p>This new [WKContentWorld] system was initially built so that website operators can&rsquo;t interfere with JavaScript code of browser plugins, and to make fingerprinting more difficult. As a user, you can check the source code of any browser plugin, as you are in control over the browser itself. However with in-app browsers we don&rsquo;t have a reliable way to verify all the code that is executed.<\/p>\n<p>So when Meta or TikTok want to hide the JavaScript commands they execute on third party websites, all they&rsquo;d need to do is to update their JavaScript runner[&#8230;]<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/08\/12\/meta-apps-inject-tracking-code\/\">Meta Apps Inject Tracking Code<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/08\/11\/facebook-ads-manager-scam-removed-from-app-store\/\">Facebook Ads Manager Scam Removed From App Store<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/07\/03\/tiktok-ios-clipboard-snooping\/\">TikTok iOS Clipboard Snooping<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Felix Krause (tweet, Hacker News, MacRumors): Last week I published a report on the risks of mobile apps using in-app browsers. Some apps, like Instagram and Facebook, inject JavaScript code into third party websites that cause potential security and privacy risks to the user.[&#8230;]Introducing InAppBrowser.com, a simple tool to list the JavaScript commands executed by [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2022-08-24T19:09:37Z","apple_news_api_id":"e47f72d9-0d44-4416-acd3-ad0177e23123","apple_news_api_modified_at":"2022-08-24T19:09:37Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/A5H9y2Q1ERBas060Bd-IxIw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[91,1286,31,2078,26,346,74,355,1904,96],"class_list":["post-36848","post","type-post","status-publish","format-standard","hentry","category-technology","tag-appstore","tag-instagram","tag-ios","tag-ios-15","tag-iosapp","tag-javascript","tag-opensource","tag-privacy","tag-tiktok","tag-web"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/36848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=36848"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/36848\/revisions"}],"predecessor-version":[{"id":36849,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/36848\/revisions\/36849"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=36848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=36848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=36848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}