SlideShare a Scribd company logo
XSSの運用の話 
ぷれぜんたー:やぎはしゅ
CSP Lv.2の話 
ぷれぜんたー:やぎはしゅ
CSP #とは 
• Content Security Policyの略称。 
- [MDN CSP] [検索] 
• XSSなどの影響を緩和する機構。 
- 根源は絶てずとも実行はさせない。 
• リソースの読み込み元を制限する。 
- インラインコードやevalも制限可能。 
• 適切に用いればXSSに対する切り札になる。 
- 未対応ブラウザでもSOPになるだけ!
流行ってるの? 
• Twitter(report-only) 
- mobile.twitter.comでは普通に使ってる(IEのせい?) 
• ChromeのExtensionではだいぶ前から必須。 
- これはChromeが前提なので等しく適用できる。 
• Firefox OSのアプリケーションでも必須。 
- こちらもFirefox前提なので容易に適用可。
サポート状況 
• だいたい全部のブラウザで使える。 
• ただし、ここでいう"ブラウザ"に 
Internet Explorerは含まれないものとする。 
• IE10以降でsandboxディレクティブのみ対応。
使い方 
• HTTPレスポンスヘッダに 
Content-Security-Policy: {$policy} 
という感じでCSPポリシーを追加。 
• これだけで対応ブラウザは勝手にやってくれる。 
• metaタグを使ってもできるけど、使う場合は 
X-XSS-Protection: 1; mode=block 
を一緒に吐いた方がいいかも。 
(まぁでもIEは実質対応してないし意味ないか)
インラインスクリプト 
• HTMLソース中に出現する 
<script>alert(1)</script> 
みたいなベタ書きのソースコードや、 
• HTMLソース中に出現する 
<button onclick="alert(1)">hoge</button> 
みたいな属性値で設定するイベントハンドラ。
eval(とそれ相当)なもの 
• window.eval() 
• window.setTimeout() 
• window.setInterval() 
• Function() 
• この4つ
ポリシーの書き方 
default-src 'self' 
- 外部オリジンの全てのリソースを拒否 
! 
script-src http://xss.moe 
- スクリプトはhttp://xss.moe以外からは読み込まない 
! 
style-src 'unsafe-inline' 
- インラインCSSを許可 
! 
default-src 'self'; 
style-src 'self' 'unsafe-inline' 
- 一番上のルールに加えて、インラインCSSは許可
本題 
• そんなCSPを発展させたCSP Lv.2の最終草案が 
2014年7月3日に公開されたよー! 
- http://www.w3.org/TR/CSP2/ 
• このイケてる機構をみんなに知ってもらいたい! 
• 気になるものをピックアップしますー。
Path matching 
• Pathマッチングに対応。 
• 従来のオリジンのみでのマッチングではなく、 
Pathでのマッチングも有効に。 
• 例えば 
http://web.sfc.keio.ac.jp/~t11913yy/ 
以下のjsファイルしか読み込ませたくないとか。
CSP 1.0 
script-src http://xss.moe OK 
script-src http://xss.moe/js/ NG 
script-src http://xss.moe/js/file.js NG 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
CSP 2.0 
script-src http://xss.moe OK 
script-src http://xss.moe/js/ OK 
script-src http://xss.moe/js/file.js OK
Path matchingの注意点 
• リダイレクトが絡む場合は少し特殊に。 
• パス情報のリークを防ぐために、 
リソースの読み込み元でリダイレクトしている場合 
はパスのマッチングはされないので注意。
こんなルールのとき 
img-src http://xss.moe http://xss-not.moe/path 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
http://xss-not.moe/not-path Fail 
! 
http://xss.moe/redirecter Pass 
! 
http://xss.moe/redirecter 
―Redirect→ http://xss-not.moe/not-path Pass 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nonce source 
• 実行可能なインラインスクリプトを指定可能に。 
• 必要なインラインのscript/styleのnonce属性を 
使って、unsafe-inlineを指定せずにCSP適用可。 
• 実装より先に考えないと適用が難しかったCSPが 
後からでも適用しやすく!!
CSP 1.0 
script-src 'self' 'unsafe-inline' 
! 
<script> 
alert('this is overdone.'); 
</script> 
CSP 2.0 
script-src 'self' 'nonce-ODEyMzg5ODgx...' 
! 
<script nonce="ODEyMzg5ODgx..."> 
alert('this works well, and minimum.'); 
</script> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nonce source 
• 実際のコードにおいては 
1) ヘッダのNonce 
2) タグの属性値のNonce 
それぞれにBase64な乱数を設定する。 
• 乱数が予測されなければ、攻撃者が 
script/styleを挿入してもそのタグ内のコードが 
実行/反映されることはない。 
• インラインコードを排除するよりも 
ずっとずっと現実的な方法でCSPを適用できる。
Source hash 
• インラインのscript/styleタグで使用可能。 
• script-src/style-srcで指定する。 
• タグ内のコードのハッシュダイジェストを使う。 
• サポートされるアルゴリズムは以下の通り。 
- SHA-256 
- SHA-384 
- SHA-512
CSP 1.0 
script-src 'self' 
! 
<script>alert("doesn't work");</script> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
CSP 2.0 
script-src 'self' 'sha256-wWhNL+Czna...' 
! 
<script>alert("work");</script> 
<script>alert("doesn't work");</script>
Source hash 
• 事前計算したハッシュダイジェストをヘッダで 
渡すだけなので、乱数を使うより高速? 
• ただしコードの修正が入った場合など、いちいち 
ダイジェストの再計算が必要で面倒臭い。 
• そういう手間を考えると素直に外部スクリプト化 
した方が楽なのでは? 
• ルータのWeb管理画面など、コードの修正が 
めったにないような製品ではいいかも。
frame-ancestors 
• iframeなどを通したアクセスに対する挙動を 
設定するディレクティブ。 
• X-Frame-Optionsとの違いは後述。 
• X-Frame-Optionsと競合する場合は、 
このディレクティブが優先される。 
• デフォルトではワイルドカードが設定される。 
• 微々たる違いだけど地味にデカい!
X-Frame-Optionsとの差異 
• X-Frame-Optionsとframe-ancestorsのポリシー 
の対応は、ざっくり言うとこんな感じ。 
DENY → 'none' 
SAMEORIGIN → 'self' 
• 基本的に実現したい機構は同じで、 
クリックジャッキングなどの対策。 
• 大きな違いは次のスライドで。
X-Frame-Options CSP Lv.2の 
frame-ancestors 
ここだけ見る全部見る 
frameアクセスを 
制限したいページ 
frameアクセスを 
制限したいページ
referrer 
• リファラの送信を制御するディレクティブ 
• サーバ側の設定を変更するだけでサイト全体の 
リファラ送信についてのポリシーを変更できる。 
• けっこうイケてる気がする。 
• HTTPのrefererヘッダはミススペリングw 
CSPのディレクティブでは正しい綴り使うよ! 
って最終草案に書いてあって笑ったw
referrer 
referrer none 
- リファラを一切送信させない 
referrer none-when-downgrade 
- SSL/TLSを使っているページからそうでないページヘは 
リファラを送信しない 
referrer origin 
- 同一オリジン間でのリファラ送信を許可 
referrer origin-when-cross-origin 
- 同一オリジンならリファラを送信、 
そうでなければオリジンのみ送信 
referrer unsafe-url 
- 全てのリファラを送信
origin-when-cross-origin 
• CORS周りの仕様に関係する部分。 
• クロスオリジンのリクエスト送信時は勝手に 
Originヘッダが付く。 
• このヘッダを用いて正当なリクエストかどうかを 
判別する場合もあるので、これが必要。
reflected-xss 
• XSS Filter/XSS Auditorの動作を規定する 
ディレクティブ。 
• X-XSS-Protectionとの関係は後述。 
• IEのXSS Filterの対策もされているのでイケメン。 
これも後述。
reflected-xss 
reflected-xss allow 
- XSS Filter/XSS Auditorを無効化 
- X-XSS-Protection: 0に相当 
! 
reflected-xss filter 
- XSS Filter/XSS Auditorを有効化 
- X-XSS-Protection: 1に相当 
! 
reflected-xss block 
- XSS Filter/XSS Auditorをブロックモードで有効化 
- X-XSS-Protection: 1; mode=blockに相当
metaタグでの指定禁止 
• reflected-xssディレクティブをmetaタグで 
設定した場合、無視される。 
• IEのXSS Filterでは、非ブロックモード時、 
インジェクションされた文字列の一部を#に 
置き換える。 
• これを用いてreflected-xssディレクティブを 
無効化できるため、脆弱となる可能性が! 
• ただし現状IEはCSPを実質サポートしていないに 
等しいためこの心配は(ry
sandbox 
• iframe sandboxのポリシーをCSPで指定できる。 
• iframe sandboxはiframe内のコンテンツの挙動を 
制限できる機構。 
• CSPでのXSS対策という視点では効果は限定的だ 
けど、HTMLコンテンツ中にいろいろ吐き出さなく 
て済むというのは利点になるかも。 
• IEもこれだけは対応してる。
sandbox 
sandbox allow-forms 
- フレーム内でのフォーム送信を許可 
sandbox allow-pointer-lock 
- ポインタロックを許可 
sandbox allow-popups 
- ポップアップを許可 
sandbox allow-same-origin 
- フレーム内コンテンツを同一オリジンのものとして扱う 
sandbox allow-scripts 
- フレーム内でのスクリプト実行を許可 
sandbox allow-top-navigation 
- フレーム内から親フレームへのアクセスを許可
CSP Lv.2サポート状況 
• Chrome - Path matching … ○ 
- Nonce source … ○ 
- Source hash … ○ 
• Safari - Path matching … ○ 
- Nonce source … ✕ 
- Source hash … ✕ 
• Firefox - Path matching … ○ 
- Nonce source … ○ 
- Source hash … ○
まとめ 
• すでにできあがったものに適用するのが難しかった 
CSPが、Lv.2になってだいぶ進歩する! 
• 細かいところで使い勝手がよくなっているので、 
既に使っている開発者もアンテナ張っておくべし! 
• 運用の面倒臭さは相変わらずだけど、導入までの 
障壁はずっと少なくなったので、使うべし! 
• ただしIEは…うん…

More Related Content

What's hot

怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
Hiroshi Tokumaru
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
日本マイクロソフト株式会社
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
Secure element for IoT device
Secure element for IoT deviceSecure element for IoT device
Secure element for IoT device
Kentaro Mitsuyasu
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
Masahiko Sawada
 
JMeter入門
JMeter入門JMeter入門
JMeter入門
Satoshi Takami
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
akira6592
 
スペシャリストになるには
スペシャリストになるにはスペシャリストになるには
スペシャリストになるには外道 父
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
Shinsuke Sugaya
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
beyond Co., Ltd.
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
 

What's hot (20)

怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
 
Secure element for IoT device
Secure element for IoT deviceSecure element for IoT device
Secure element for IoT device
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
JMeter入門
JMeter入門JMeter入門
JMeter入門
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
 
スペシャリストになるには
スペシャリストになるにはスペシャリストになるには
スペシャリストになるには
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 

Similar to CSP Lv.2の話

RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
Isao Takaesu
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
Amazon Web Services Japan
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
そろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティそろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティ
Muneaki Nishimura
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
Sotaro Kimura
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
Kohei Kadowaki
 
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
OWASP Nagoya
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
Iwasaki Noboru
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews, Inc.
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
Amazon Web Services Japan
 
How to use Ceph RBD as CloudStack Primary Storage
How to use Ceph RBD as CloudStack Primary StorageHow to use Ceph RBD as CloudStack Primary Storage
How to use Ceph RBD as CloudStack Primary Storage
Kimihiko Kitase
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
Akinari Tsugo
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
Takano Masaru
 
Wakame Tech #1
Wakame Tech #1Wakame Tech #1
Wakame Tech #1
axsh co., LTD.
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTTomohiro Ikeda
 
Zabbix study5lt
Zabbix study5ltZabbix study5lt
Zabbix study5lt
Tomohiro Ikeda
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
Amazon Web Services Japan
 

Similar to CSP Lv.2の話 (20)

RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -RECOMMENDER for Web security engineers - 中級編 -
RECOMMENDER for Web security engineers - 中級編 -
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
そろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティそろそろ押さえておきたい AngularJSのセキュリティ
そろそろ押さえておきたい AngularJSのセキュリティ
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
 
AWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon AuroraAWS Black Belt Online Seminar Amazon Aurora
AWS Black Belt Online Seminar Amazon Aurora
 
How to use Ceph RBD as CloudStack Primary Storage
How to use Ceph RBD as CloudStack Primary StorageHow to use Ceph RBD as CloudStack Primary Storage
How to use Ceph RBD as CloudStack Primary Storage
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
Wakame Tech #1
Wakame Tech #1Wakame Tech #1
Wakame Tech #1
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
 
Zabbix study5lt
Zabbix study5ltZabbix study5lt
Zabbix study5lt
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
 

Recently uploaded

FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

CSP Lv.2の話

  • 2.
  • 3.
  • 5. CSP #とは • Content Security Policyの略称。 - [MDN CSP] [検索] • XSSなどの影響を緩和する機構。 - 根源は絶てずとも実行はさせない。 • リソースの読み込み元を制限する。 - インラインコードやevalも制限可能。 • 適切に用いればXSSに対する切り札になる。 - 未対応ブラウザでもSOPになるだけ!
  • 6. 流行ってるの? • Twitter(report-only) - mobile.twitter.comでは普通に使ってる(IEのせい?) • ChromeのExtensionではだいぶ前から必須。 - これはChromeが前提なので等しく適用できる。 • Firefox OSのアプリケーションでも必須。 - こちらもFirefox前提なので容易に適用可。
  • 7. サポート状況 • だいたい全部のブラウザで使える。 • ただし、ここでいう"ブラウザ"に Internet Explorerは含まれないものとする。 • IE10以降でsandboxディレクティブのみ対応。
  • 8. 使い方 • HTTPレスポンスヘッダに Content-Security-Policy: {$policy} という感じでCSPポリシーを追加。 • これだけで対応ブラウザは勝手にやってくれる。 • metaタグを使ってもできるけど、使う場合は X-XSS-Protection: 1; mode=block を一緒に吐いた方がいいかも。 (まぁでもIEは実質対応してないし意味ないか)
  • 9. インラインスクリプト • HTMLソース中に出現する <script>alert(1)</script> みたいなベタ書きのソースコードや、 • HTMLソース中に出現する <button onclick="alert(1)">hoge</button> みたいな属性値で設定するイベントハンドラ。
  • 10. eval(とそれ相当)なもの • window.eval() • window.setTimeout() • window.setInterval() • Function() • この4つ
  • 11. ポリシーの書き方 default-src 'self' - 外部オリジンの全てのリソースを拒否 ! script-src http://xss.moe - スクリプトはhttp://xss.moe以外からは読み込まない ! style-src 'unsafe-inline' - インラインCSSを許可 ! default-src 'self'; style-src 'self' 'unsafe-inline' - 一番上のルールに加えて、インラインCSSは許可
  • 12. 本題 • そんなCSPを発展させたCSP Lv.2の最終草案が 2014年7月3日に公開されたよー! - http://www.w3.org/TR/CSP2/ • このイケてる機構をみんなに知ってもらいたい! • 気になるものをピックアップしますー。
  • 13. Path matching • Pathマッチングに対応。 • 従来のオリジンのみでのマッチングではなく、 Pathでのマッチングも有効に。 • 例えば http://web.sfc.keio.ac.jp/~t11913yy/ 以下のjsファイルしか読み込ませたくないとか。
  • 14. CSP 1.0 script-src http://xss.moe OK script-src http://xss.moe/js/ NG script-src http://xss.moe/js/file.js NG ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CSP 2.0 script-src http://xss.moe OK script-src http://xss.moe/js/ OK script-src http://xss.moe/js/file.js OK
  • 15. Path matchingの注意点 • リダイレクトが絡む場合は少し特殊に。 • パス情報のリークを防ぐために、 リソースの読み込み元でリダイレクトしている場合 はパスのマッチングはされないので注意。
  • 16. こんなルールのとき img-src http://xss.moe http://xss-not.moe/path ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://xss-not.moe/not-path Fail ! http://xss.moe/redirecter Pass ! http://xss.moe/redirecter ―Redirect→ http://xss-not.moe/not-path Pass ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 17. Nonce source • 実行可能なインラインスクリプトを指定可能に。 • 必要なインラインのscript/styleのnonce属性を 使って、unsafe-inlineを指定せずにCSP適用可。 • 実装より先に考えないと適用が難しかったCSPが 後からでも適用しやすく!!
  • 18. CSP 1.0 script-src 'self' 'unsafe-inline' ! <script> alert('this is overdone.'); </script> CSP 2.0 script-src 'self' 'nonce-ODEyMzg5ODgx...' ! <script nonce="ODEyMzg5ODgx..."> alert('this works well, and minimum.'); </script> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 19. Nonce source • 実際のコードにおいては 1) ヘッダのNonce 2) タグの属性値のNonce それぞれにBase64な乱数を設定する。 • 乱数が予測されなければ、攻撃者が script/styleを挿入してもそのタグ内のコードが 実行/反映されることはない。 • インラインコードを排除するよりも ずっとずっと現実的な方法でCSPを適用できる。
  • 20. Source hash • インラインのscript/styleタグで使用可能。 • script-src/style-srcで指定する。 • タグ内のコードのハッシュダイジェストを使う。 • サポートされるアルゴリズムは以下の通り。 - SHA-256 - SHA-384 - SHA-512
  • 21. CSP 1.0 script-src 'self' ! <script>alert("doesn't work");</script> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CSP 2.0 script-src 'self' 'sha256-wWhNL+Czna...' ! <script>alert("work");</script> <script>alert("doesn't work");</script>
  • 22. Source hash • 事前計算したハッシュダイジェストをヘッダで 渡すだけなので、乱数を使うより高速? • ただしコードの修正が入った場合など、いちいち ダイジェストの再計算が必要で面倒臭い。 • そういう手間を考えると素直に外部スクリプト化 した方が楽なのでは? • ルータのWeb管理画面など、コードの修正が めったにないような製品ではいいかも。
  • 23. frame-ancestors • iframeなどを通したアクセスに対する挙動を 設定するディレクティブ。 • X-Frame-Optionsとの違いは後述。 • X-Frame-Optionsと競合する場合は、 このディレクティブが優先される。 • デフォルトではワイルドカードが設定される。 • 微々たる違いだけど地味にデカい!
  • 24. X-Frame-Optionsとの差異 • X-Frame-Optionsとframe-ancestorsのポリシー の対応は、ざっくり言うとこんな感じ。 DENY → 'none' SAMEORIGIN → 'self' • 基本的に実現したい機構は同じで、 クリックジャッキングなどの対策。 • 大きな違いは次のスライドで。
  • 25. X-Frame-Options CSP Lv.2の frame-ancestors ここだけ見る全部見る frameアクセスを 制限したいページ frameアクセスを 制限したいページ
  • 26. referrer • リファラの送信を制御するディレクティブ • サーバ側の設定を変更するだけでサイト全体の リファラ送信についてのポリシーを変更できる。 • けっこうイケてる気がする。 • HTTPのrefererヘッダはミススペリングw CSPのディレクティブでは正しい綴り使うよ! って最終草案に書いてあって笑ったw
  • 27. referrer referrer none - リファラを一切送信させない referrer none-when-downgrade - SSL/TLSを使っているページからそうでないページヘは リファラを送信しない referrer origin - 同一オリジン間でのリファラ送信を許可 referrer origin-when-cross-origin - 同一オリジンならリファラを送信、 そうでなければオリジンのみ送信 referrer unsafe-url - 全てのリファラを送信
  • 28. origin-when-cross-origin • CORS周りの仕様に関係する部分。 • クロスオリジンのリクエスト送信時は勝手に Originヘッダが付く。 • このヘッダを用いて正当なリクエストかどうかを 判別する場合もあるので、これが必要。
  • 29. reflected-xss • XSS Filter/XSS Auditorの動作を規定する ディレクティブ。 • X-XSS-Protectionとの関係は後述。 • IEのXSS Filterの対策もされているのでイケメン。 これも後述。
  • 30. reflected-xss reflected-xss allow - XSS Filter/XSS Auditorを無効化 - X-XSS-Protection: 0に相当 ! reflected-xss filter - XSS Filter/XSS Auditorを有効化 - X-XSS-Protection: 1に相当 ! reflected-xss block - XSS Filter/XSS Auditorをブロックモードで有効化 - X-XSS-Protection: 1; mode=blockに相当
  • 31. metaタグでの指定禁止 • reflected-xssディレクティブをmetaタグで 設定した場合、無視される。 • IEのXSS Filterでは、非ブロックモード時、 インジェクションされた文字列の一部を#に 置き換える。 • これを用いてreflected-xssディレクティブを 無効化できるため、脆弱となる可能性が! • ただし現状IEはCSPを実質サポートしていないに 等しいためこの心配は(ry
  • 32. sandbox • iframe sandboxのポリシーをCSPで指定できる。 • iframe sandboxはiframe内のコンテンツの挙動を 制限できる機構。 • CSPでのXSS対策という視点では効果は限定的だ けど、HTMLコンテンツ中にいろいろ吐き出さなく て済むというのは利点になるかも。 • IEもこれだけは対応してる。
  • 33. sandbox sandbox allow-forms - フレーム内でのフォーム送信を許可 sandbox allow-pointer-lock - ポインタロックを許可 sandbox allow-popups - ポップアップを許可 sandbox allow-same-origin - フレーム内コンテンツを同一オリジンのものとして扱う sandbox allow-scripts - フレーム内でのスクリプト実行を許可 sandbox allow-top-navigation - フレーム内から親フレームへのアクセスを許可
  • 34. CSP Lv.2サポート状況 • Chrome - Path matching … ○ - Nonce source … ○ - Source hash … ○ • Safari - Path matching … ○ - Nonce source … ✕ - Source hash … ✕ • Firefox - Path matching … ○ - Nonce source … ○ - Source hash … ○
  • 35. まとめ • すでにできあがったものに適用するのが難しかった CSPが、Lv.2になってだいぶ進歩する! • 細かいところで使い勝手がよくなっているので、 既に使っている開発者もアンテナ張っておくべし! • 運用の面倒臭さは相変わらずだけど、導入までの 障壁はずっと少なくなったので、使うべし! • ただしIEは…うん…