Fishing you

10
2011.07.16 Kiyo. F ishing Ou $

TAGS:

Transcript of Fishing you

Page 1: Fishing you

2011.07.16  Kiyo.

F ishing Ou

$

Page 2: Fishing you

Copyright @ Rocket‐stars

Android でアプリを作っていると、いろいろヤバいコトがみえてきます。詳しく書いて広がるといけないので簡単に2つだけ注意しないといけないものをか

いていおきます。 

1.Webを見ていてアプリが起ち上がる。 2.Twitter、facebook、rssリーダーアプリからweb画面を表示する。 

Page 3: Fishing you

Copyright @ Rocket‐stars

browser

xxxxxx

Browserでサイトを見ていて、リンクを押した時に、browserか別のアプリを選択する画面がでたことありませんか? 

リンク先に関係ない会社のアプリが表示されていたら気をつけて。 便利なアプリそうでも、常にこの動作の時はこのアプリみたいなチェックはつけないで。開いても個人情報は入れない方がいいです。

Page 4: Fishing you

App

いままでのアプリは起動したらそのアプリの1番目のエントリーポイントから処理がはじまるのがふつうでした。

起動

次の画面 次の画面

起動してもココから始まる

なのでへんなアプリが起ち上がるまえ、インストール時に気をつけることができました。

Androidの場合、エントリーポイント以外の画面からも起ち上がることができます。 A Activity B Activity C Activity

1つの画面をActivityと呼び、アプリとしてインストールした1つのパッケージの中から、Activityを指定して外部から起動することができます。

Copyright @ Rocket‐stars

Page 5: Fishing you

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

Page 6: Fishing you

で、モロFishing目的なアプリを作らなくても、見た目おもしろゲームアプリや便利twitterクライアントを作り、いざFishingしたいという時に起動するFishing用のActivityを潜ませておくことができます。

A Fishing

1つのアプリ

Main

普段表に出てくるActivity

Fishing用Activity

Copyright @ Rocket‐stars

いつも使っているアプリを信頼して、Webのリンクをクリックした時に、このアプリが起動されたら。。。。あなたならどうしますか? うっかり何か入力してしまうと・・・ 

Page 7: Fishing you

Copyright @ Rocket‐stars

アプリに表示されているリンクをクリックしてbrowserが起動されるのではなくて、アプリ内にそのまま続きが表示されるのがふえてきましたよね? 

アプリ内に表示されているwebページでの個人情報の入力は控えて。 アプリ内に表示されるwebページ上での個人情報を入力するフォームがあったら、menuなどにあるbrowserでこのページを開くで開いてから。

http://a.bitly/aaa

App App

Page 8: Fishing you

アプリのActivity

Androidでは、WebViewという仕組みでアプリの中でbrowserを組み込んだようにしてwebページを表示できます。

このwebviewは大変便利で ・browser上でおこるイベント、html読み込み完了イベントなどJavaScriptであるようなイベントをアプリ内のJavaで検知することができます。 

Copyright @ Rocket‐stars

Webページ

アプリのActivity

Webページ

Event Event アプリ側でEventを受け取りアプリ独自の処理をすることができる。

Page 9: Fishing you

・html上に書かれたJavascriptからアプリ内のJavaのメソッド(関数)を呼び出すことができます。 

・逆にアプリ内のJavaから、表示したhtmlページにJavaScriptを追加することが可能です。

Copyright @ Rocket‐stars

アプリのActivity

Webページ

JavaScriptから、アプリ内のJavaとやり取りができる。

アプリのActivity

Webページ JavaScr

ipt

これが一番危険。開いたサイトにはないJavaScriptを勝手に埋め込める。 

Browserで見たときとアプリで見た時で背景色が違うとかいう場合アプリ側で、styleを

いじっている可能性があります。

Page 10: Fishing you

で、これらの技術を使うと、普段は普通のtwitterアプリに見えていても、アプリ内に表示されているリンクがfishingターゲットなサイトだったら、このJavaScriptを埋め込みfishing発動!なんてことができてしまいます。 

Copyright @ Rocket‐stars

いつも使っているアプリに表示されている広告があなた好みになっていませんか? 

つづきはwebで。。の方が安全かも。 

http://a.bitly/aaa

App Fishing

Java Script

※でも開いているだけで、マーケティング的なデータ(その人がどういうコンテンツのwebページをどれくらいみているか?なんてこと)はとれます。 そのデータを使いアプリ内に表示させる広告を最適化するなんてこともできます。 ・・・だってtwitterアプリだけでも100万種類もあるってけど、普通にやってても何にも金にならないですからね。ほとんど何かしらデータは取られてますよ。誰と友達か?位置情報とかも。 Facebookも連動してたらほぼ個人特定されていると思って間違いないです。 データはサーバに保存されて売買されているのでどこで広告データとして使われているかはもうわからない状態です。