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

機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
信之 岩永
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
 
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Unity Technologies Japan K.K.
 
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
Katz Ueno
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
 
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
TAKUYA OHTA
 
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
Tomoyuki Oota
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Kazumi IWANAGA
 
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
まべ☆てっく運営
 
GREE 流!AWS をお得に使う方法
GREE 流!AWS をお得に使う方法GREE 流!AWS をお得に使う方法
GREE 流!AWS をお得に使う方法
gree_tech
 
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
Yoshiiro Ueno
 
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」 BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
BitVisor
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
mganeko
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
 
WebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボットWebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボット
NTT Communications Technology Development
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
apkiban
 
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
 

What's hot (20)

機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
Google cast開発入門
Google cast開発入門Google cast開発入門
Google cast開発入門
 
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話
 
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
 
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
性能問題を起こしにくい 強いDBシステムの作り方(Ver. 2018.9)
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
 
負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編負荷テストを行う際に知っておきたいこと 初心者編
負荷テストを行う際に知っておきたいこと 初心者編
 
GREE 流!AWS をお得に使う方法
GREE 流!AWS をお得に使う方法GREE 流!AWS をお得に使う方法
GREE 流!AWS をお得に使う方法
 
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
 
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」 BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
BitVisor Summit 10「1. BitVisor 2021年の主な変更点」
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
 
WebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボットWebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボット
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
 
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
 

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

協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 

Recently uploaded (10)

協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 

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は…うん…