Fishing you
-
Upload
kiyotaka-tanaka -
Category
Technology
-
view
608 -
download
0
Transcript of Fishing you
2011.07.16 Kiyo.
F ishing Ou
$
Copyright @ Rocket‐stars
Android でアプリを作っていると、いろいろヤバいコトがみえてきます。詳しく書いて広がるといけないので簡単に2つだけ注意しないといけないものをか
いていおきます。
1.Webを見ていてアプリが起ち上がる。 2.Twitter、facebook、rssリーダーアプリからweb画面を表示する。
Copyright @ Rocket‐stars
browser
xxxxxx
Browserでサイトを見ていて、リンクを押した時に、browserか別のアプリを選択する画面がでたことありませんか?
リンク先に関係ない会社のアプリが表示されていたら気をつけて。 便利なアプリそうでも、常にこの動作の時はこのアプリみたいなチェックはつけないで。開いても個人情報は入れない方がいいです。
App
いままでのアプリは起動したらそのアプリの1番目のエントリーポイントから処理がはじまるのがふつうでした。
起動
次の画面 次の画面
起動してもココから始まる
なのでへんなアプリが起ち上がるまえ、インストール時に気をつけることができました。
Androidの場合、エントリーポイント以外の画面からも起ち上がることができます。 A Activity B Activity C Activity
1つの画面をActivityと呼び、アプリとしてインストールした1つのパッケージの中から、Activityを指定して外部から起動することができます。
Copyright @ Rocket‐stars
Intent‐filterという仕組みで、このActivityはこういう指定の時起動する。という指定をアプリにいれておけます。
しかも、普通にブラウザで見ていて、http://aaa.com/が指定された<a>タグリンクをクリックしたらこのActivityを起動する。とアプリが指定できます。なので、browserで見ていて、リンクをクリックすると、browserとAAAというアプリどちらを選択しますか?という画面が出てくるのです。
browser
xxxxxx
App
A
geo://l,l(aaaa)なら Aを起動
B
phone://222222なら
Bを起動
1つのアプリ Main
通常のランチャーから起動時はMain
から起動
Copyright @ Rocket‐stars
で、モロFishing目的なアプリを作らなくても、見た目おもしろゲームアプリや便利twitterクライアントを作り、いざFishingしたいという時に起動するFishing用のActivityを潜ませておくことができます。
A Fishing
1つのアプリ
Main
普段表に出てくるActivity
Fishing用Activity
Copyright @ Rocket‐stars
いつも使っているアプリを信頼して、Webのリンクをクリックした時に、このアプリが起動されたら。。。。あなたならどうしますか? うっかり何か入力してしまうと・・・
Copyright @ Rocket‐stars
アプリに表示されているリンクをクリックしてbrowserが起動されるのではなくて、アプリ内にそのまま続きが表示されるのがふえてきましたよね?
アプリ内に表示されているwebページでの個人情報の入力は控えて。 アプリ内に表示されるwebページ上での個人情報を入力するフォームがあったら、menuなどにあるbrowserでこのページを開くで開いてから。
http://a.bitly/aaa
App App
アプリのActivity
Androidでは、WebViewという仕組みでアプリの中でbrowserを組み込んだようにしてwebページを表示できます。
このwebviewは大変便利で ・browser上でおこるイベント、html読み込み完了イベントなどJavaScriptであるようなイベントをアプリ内のJavaで検知することができます。
Copyright @ Rocket‐stars
Webページ
アプリのActivity
Webページ
Event Event アプリ側でEventを受け取りアプリ独自の処理をすることができる。
・html上に書かれたJavascriptからアプリ内のJavaのメソッド(関数)を呼び出すことができます。
・逆にアプリ内のJavaから、表示したhtmlページにJavaScriptを追加することが可能です。
Copyright @ Rocket‐stars
アプリのActivity
Webページ
JavaScriptから、アプリ内のJavaとやり取りができる。
アプリのActivity
Webページ JavaScr
ipt
これが一番危険。開いたサイトにはないJavaScriptを勝手に埋め込める。
Browserで見たときとアプリで見た時で背景色が違うとかいう場合アプリ側で、styleを
いじっている可能性があります。
で、これらの技術を使うと、普段は普通のtwitterアプリに見えていても、アプリ内に表示されているリンクがfishingターゲットなサイトだったら、このJavaScriptを埋め込みfishing発動!なんてことができてしまいます。
Copyright @ Rocket‐stars
いつも使っているアプリに表示されている広告があなた好みになっていませんか?
つづきはwebで。。の方が安全かも。
http://a.bitly/aaa
App Fishing
Java Script
※でも開いているだけで、マーケティング的なデータ(その人がどういうコンテンツのwebページをどれくらいみているか?なんてこと)はとれます。 そのデータを使いアプリ内に表示させる広告を最適化するなんてこともできます。 ・・・だってtwitterアプリだけでも100万種類もあるってけど、普通にやってても何にも金にならないですからね。ほとんど何かしらデータは取られてますよ。誰と友達か?位置情報とかも。 Facebookも連動してたらほぼ個人特定されていると思って間違いないです。 データはサーバに保存されて売買されているのでどこで広告データとして使われているかはもうわからない状態です。