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
Hiyou Shinnonome
PDF, PPTX
880 views
Cross-Origin Resource Sharing
Cross-Origin Resource Sharingを簡単に解説しました @2015/06/30 DMM.comラボ ツチノコ定例勉強会
Internet
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PPTX
SPA勉強会
by
Daisuke Onoe
PPTX
Html5biz on May 10th, 2013
by
光一 原田
PDF
Nodejs and mongodb
by
Ayako Hatori
PPTX
20120609
by
小野 修司
PPT
AWS free tier maximization
by
Kenkichi Okazaki
PPTX
20120128
by
小野 修司
PDF
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
by
Kenkichi Okazaki
PDF
Sales Force Episode VI ~ Return of Ajax Toolkit ~
by
Shinichi Tomita
SPA勉強会
by
Daisuke Onoe
Html5biz on May 10th, 2013
by
光一 原田
Nodejs and mongodb
by
Ayako Hatori
20120609
by
小野 修司
AWS free tier maximization
by
Kenkichi Okazaki
20120128
by
小野 修司
Inspector CLI (JAWS-UG 京王線支部 #4 LT)
by
Kenkichi Okazaki
Sales Force Episode VI ~ Return of Ajax Toolkit ~
by
Shinichi Tomita
What's hot
PPT
Amazon awsを使ったwordpressサイト構築のポイント
by
Mugen Fujii
PDF
WebフレームワークXSS対策の自動化
by
Yoshihiro Ura
PPTX
サーバーレスでアンケートフォームを作ってみた
by
ryutakatori
PDF
Hijax - 少しずつAjaxへ
by
Yi Gu
PPTX
React.js
by
youhe_
PDF
Media Assembly Kit
by
Hiromichi Koga
PDF
WordPress on movable type(WordCamp Kobe 2013)
by
Hajime Fujimoto
PDF
Movable Type as a Playground
by
Taku AMANO
PPTX
20111203
by
小野 修司
PPTX
Java script
by
sayoko miura
PDF
サービスが増えた今こそ気にしたいアクセス管理
by
Yosuke Kusumi
PDF
Gulp De wordpress in WordBench
by
Kanako Kobayashi
PDF
20150207 elastic loadbalancer
by
Daiki Mori
PDF
最近のASP.NET事情2013Winter
by
Narami Kiyokura
PDF
Service worker が拓く mobile web の新しいかたち
by
Kinuko Yasuda
PDF
Data APIの基本
by
Hajime Fujimoto
PDF
トレタのMySQL MySQL casual #8
by
Hiroaki Sano
PPTX
20161115 okubo mt_cloud_handson
by
Six Apart
Amazon awsを使ったwordpressサイト構築のポイント
by
Mugen Fujii
WebフレームワークXSS対策の自動化
by
Yoshihiro Ura
サーバーレスでアンケートフォームを作ってみた
by
ryutakatori
Hijax - 少しずつAjaxへ
by
Yi Gu
React.js
by
youhe_
Media Assembly Kit
by
Hiromichi Koga
WordPress on movable type(WordCamp Kobe 2013)
by
Hajime Fujimoto
Movable Type as a Playground
by
Taku AMANO
20111203
by
小野 修司
Java script
by
sayoko miura
サービスが増えた今こそ気にしたいアクセス管理
by
Yosuke Kusumi
Gulp De wordpress in WordBench
by
Kanako Kobayashi
20150207 elastic loadbalancer
by
Daiki Mori
最近のASP.NET事情2013Winter
by
Narami Kiyokura
Service worker が拓く mobile web の新しいかたち
by
Kinuko Yasuda
Data APIの基本
by
Hajime Fujimoto
トレタのMySQL MySQL casual #8
by
Hiroaki Sano
20161115 okubo mt_cloud_handson
by
Six Apart
Similar to Cross-Origin Resource Sharing
PDF
クロスサイトリクエストフォージェリ(CSRF)とその対策
by
JPCERT Coordination Center
PPTX
20161114 よくわかるcsrf
by
Yoshiki TAKADA
PDF
CSP Lv.2の話
by
Yu Yagihashi
PPTX
クロスドメイン処理
by
Yoshifumi Sato
PDF
Ajax非同期通信によるサーバー通信
by
Yossy Taka
PDF
HTML5 Security & Headers - X-Crawling-Response-Header - by 重森 友行
by
CODE BLUE
PDF
XSSについて調べたこと
by
iPride Co., Ltd.
PDF
CSRF脆弱性について
by
Masaaki Kakimoto
PDF
Webアプリ開発者のためのHTML5セキュリティ入門
by
Muneaki Nishimura
PDF
RESTful APIとしてのRailsとクライアントとしてのJavaScript
by
Naoto Koshikawa
PDF
XHR2 Wonder Land
by
ykhs
PPTX
HTML5 Web アプリケーションのセキュリティ
by
彰 村地
PPTX
徳丸本に載っていないWebアプリケーションセキュリティ
by
Hiroshi Tokumaru
PDF
SSRF基礎
by
Yu Iwama
クロスサイトリクエストフォージェリ(CSRF)とその対策
by
JPCERT Coordination Center
20161114 よくわかるcsrf
by
Yoshiki TAKADA
CSP Lv.2の話
by
Yu Yagihashi
クロスドメイン処理
by
Yoshifumi Sato
Ajax非同期通信によるサーバー通信
by
Yossy Taka
HTML5 Security & Headers - X-Crawling-Response-Header - by 重森 友行
by
CODE BLUE
XSSについて調べたこと
by
iPride Co., Ltd.
CSRF脆弱性について
by
Masaaki Kakimoto
Webアプリ開発者のためのHTML5セキュリティ入門
by
Muneaki Nishimura
RESTful APIとしてのRailsとクライアントとしてのJavaScript
by
Naoto Koshikawa
XHR2 Wonder Land
by
ykhs
HTML5 Web アプリケーションのセキュリティ
by
彰 村地
徳丸本に載っていないWebアプリケーションセキュリティ
by
Hiroshi Tokumaru
SSRF基礎
by
Yu Iwama
More from Hiyou Shinnonome
PPTX
20180112 ssmjp SDカード今昔
by
Hiyou Shinnonome
PDF
DMM.comラボでの日本語全文検索の利用事例紹介
by
Hiyou Shinnonome
PPTX
20150522 ssmjp 誰もが見たことのある仕様書の話
by
Hiyou Shinnonome
PDF
qpstudy 2013.04
by
Hiyou Shinnonome
KEY
20121103 #odstudy できる! VBAマクロ
by
Hiyou Shinnonome
KEY
20120519 #qpstudy インターフェース入門
by
Hiyou Shinnonome
PPTX
20110528 qpstudy LT 「Interop 行きませんか」
by
Hiyou Shinnonome
PPTX
きっかけはネットワーク #nwstudy Vol.01
by
Hiyou Shinnonome
PPT
#nwstudy の紹介
by
Hiyou Shinnonome
PDF
インフラエンジニアのためのUstream入門
by
Hiyou Shinnonome
20180112 ssmjp SDカード今昔
by
Hiyou Shinnonome
DMM.comラボでの日本語全文検索の利用事例紹介
by
Hiyou Shinnonome
20150522 ssmjp 誰もが見たことのある仕様書の話
by
Hiyou Shinnonome
qpstudy 2013.04
by
Hiyou Shinnonome
20121103 #odstudy できる! VBAマクロ
by
Hiyou Shinnonome
20120519 #qpstudy インターフェース入門
by
Hiyou Shinnonome
20110528 qpstudy LT 「Interop 行きませんか」
by
Hiyou Shinnonome
きっかけはネットワーク #nwstudy Vol.01
by
Hiyou Shinnonome
#nwstudy の紹介
by
Hiyou Shinnonome
インフラエンジニアのためのUstream入門
by
Hiyou Shinnonome
Cross-Origin Resource Sharing
1.
Cross-Origin Resource Sharing Ajax時代のCSRF対策
2.
CSRFとは • Cross-Site Request
Forgeries • 正規のフォーム等以外からのリクエストを送り、 データを不正に送受信すること • 詳しくはWikipedia:クロスサイトリクエストフォージェ リ
3.
Ajaxとは • Asynchronous JavaScript
+ XML • 非同期でJavaScriptを用いて必要な情報をXML で取得し、動的に画面を書き換える方法 • 現在はXML以外にJSON等も用いられる • サーバで動的にページを生成するものではない
4.
jQueryとは違うの • jQueryはAjaxを使うためのフレームワークの一 つ • 他にもGoogle
Web ToolkitやSpry等がある
5.
AjaxでのCSRF • 通常のCSRFはサーバへリクエストを送ること で、不正にページを書き換える攻撃手法 • Ajaxではサーバへリクエストを送ってページを 動的に生成することは基本的にない
6.
AjaxでのCSRF • クライアントサイドで動的にページ生成する際 に不正なデータを入れ込まれる • 正規のページに似せて骨格をつくり、ページを 構成する各パーツを正規のサーバから取得する ことで、ぱっと見では見分けがつかないページ を生成することが可能となってしまう
7.
対策 • 各ブラウザは、同一ドメインのリソースのみを Ajaxに利用できるように制限 「Ajaxクロスドメイン制約」 「同一生成元ポリシー」
8.
JSONP • HTMLのscriptタグを用いて、外部ドメインからデー タを持つスクリプトを取得、リソースとして利用する 方法 <script src=
http://data.example.com/req?data=example-data > • JSONPのデータは、基本的にどこからでもリクエス トして取得できてしまう。 → データ漏えいの危険性
9.
リファラ検証 • JSONPの呼び出し元を検証することで、攻撃サ イトへのデータ提供を阻止する • 最近のパーソナルファイアウォール等は、 Refererを削除するものがある →
リファラ検証が成り立たない
10.
その他の危険 • データ内容はあくまでJavaScript • 適切なエスケープを行わないとXSSを許容してし まうおそれがある
11.
CORS • 別ドメインリソースを取得するときのW3C勧告 • Ajaxがリソースを取ろうとした時に、ブラウザ 内部で動作する
→ JavaScriptで制御できない
12.
使われるヘッダ • Origin :
データ参照元ドメイン • Access-Control-* : 各種許可情報のやりとりに 使われる(ヘッダ名で内容は判断できる・後述
13.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページのドメ イン情報等を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
14.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページのドメ イン情報等を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
15.
Ajaxの外部リソース取得 • XMLHttpRequest(XHR)の呼び出し • JavaScriptからブラウザへリソースの要求が行われる •
ブラウザが外部ドメインかどうかを判断する • ブラウザがpreflightリクエストが必要かを判断 する
16.
preflightの条件 • HTTPメソッドがGET, POST,
HEADのいずれか • HTTPヘッダにAccept, Accept-Language, Content-Language, Content-Type以外のフィー ルドが含まれない • Content-Typeの値はapplication/x-www-form- urlencoded, multipart/form-data, text/plain のいずれか
17.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
18.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
19.
preflight - 送信 •
OPTIONSメソッドを使用 • Originヘッダ • 参照元スキーマ及びドメイン情報 • Access-Control-Request-Methodヘッダ • リクエストに使用するメソッド
20.
preflight - 送信 OPTIONS
/ HTTP/1.1 Host : data.example.com Origin : http://www.example.com Access-Control-Request-Method : GET
21.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
22.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
23.
preflight - 受信 •
200番台のレスポンスコード • Access-Control-Allow-Originヘッダ • 許可されたOriginの情報(通常、リクエストと同値が返される) • Access-Control-Max-Ageヘッダ • preflightのTTL(秒単位 • Access-Control-Allow-Methodsヘッダ • 許可するメソッドの一覧 • Varyヘッダ • 内容によって応答が変更されるヘッダ一覧
24.
preflight - 受信 HTTP/1.1
200 OK Server: nginx/1.7.10 Date: Mon, 29 Jun 2015 09:52:05 GMT Content-Length: 0 Connection: keep-alive Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET Access-Control-Max-Age: 3000 Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
25.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
26.
CORSシーケンス • Ajaxで別ドメインのリソースを取得しようとする • ブラウザがリソースに対して表示中ページの情報 を送る •
リソース側で許可されたアクセスかを判断し、ブ ラウザに応答する • 許可されたアクセスであれば、Ajaxの通信をブラ ウザがリソースへ送信する
27.
その他ヘッダ • Access-Control-Allow-Credentials • Cookieを許可するか •
Access-Control-Expose-Headers • 使用可能なヘッダの一覧
28.
前提条件 • DNS Spoofingがされていないこと
29.
質疑応答
Download