¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ



Similar documents
¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

07_経営論集2010 小松先生.indd

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 Microsoft MVP for Consumer Security Oct

第2回_416.ppt

自己紹介 XSS のほうから来ました author of jjencode, aaencode

ict8.key


Web±ÜÍ÷¤Î³Ú¤·¤µ¤ò¹â¤á¤ëWeb¥Ú¡¼¥¸²ÄÄ°²½¥·¥¹¥Æ¥à

m_sotsuron

25 About what prevent spoofing of misusing a session information

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 OWASP Kansai Chapter Leader OWASP Japan Chapter Advisory Board member

Web SOAP Internet Web REST SOAP REST 3 REST SOAP 4

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web


¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

untitled

5-5_arai_JPNICSecSemi_XssCsrf_CM_ PDF

Level1_ key

Phishing対策のためのMutualアクセス認証 〜 MutualTestFoxの公開について 〜

paper.pdf

OSS OSS 10 Amazon 2 Google 10 HTML5 5

ohp.mgp

Taro-WebGLサンプルの説明

ITS資料

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

untitled

shio_ PDF

第7回 Javascript入門

Microsoft PowerPoint - 情報システム pptx

B 20 Web

今から始めるHTML5セキュリティ

Microsoft PowerPoint - ABC_2011_1_9_yoichiro.pptx

FileMaker Server Getting Started Guide

従来型 Web Ajax ー Webサー ー Webサー M M に M ージを M M ク イ ント JavaScript を イン M を ー に ータ 力 Submit タンを Submit の ージ る XX X 力 ータ M ータの によ に る M を に の プリに対 キー ー スによ

IPSJ SIG Technical Report Vol.2014-HCI-157 No.26 Vol.2014-GN-91 No.26 Vol.2014-EC-31 No /3/15 1,a) 2 3 Web (SERP) ( ) Web (VP) SERP VP VP SERP

Adobe AIR のセキュリティ

untitled

FileMaker Server 9 Getting Started Guide

Wiki

Ajax-ch00

DEIM Forum 2019 H2-2 SuperSQL SuperSQL SQL SuperSQL Web SuperSQL DBMS Pi

0序文‐1章.indd

untitled

Web XXX.XXX.XXX.XXX - - [02/May/2010:12:52: ] "GET /url/url2/page2.htm HTTP/1.1" " "(compatibl

Web2.0 LL Framework Ruby on Rails / TurboGears / CakePHP Atlas Web2.0 XML Selenium / JMeter 3 Ajax Web 2.0 UI Ruby on Rails Web 2. ASP.NET AJAX,

WebRTC P2P Web Proxy P2P Web Proxy WebRTC WebRTC Web, HTTP, WebRTC, P2P i

FileMaker Server Getting Started Guide

AJAXを使用した高い対話性を誇るポートレットの構築

1 Web Web 1,,,, Web, Web : - i -

ORCA (Online Research Control system Architecture)

2

JavaScript の使い方

Dec , IS p. 1/60

FileMaker Server Getting Started Guide

manual.dvi

Microsoft Word - 11_thesis_08k1131_hamada.docx

guide.PDF

FileMaker Instant Web Publishing Guide

HTTP2 HTTP2 http2fuzz ATS Firefox NodeJS

4. Webブラウザのオブジェクト

長谷川陽介 ( はせがわようすけ OWASP Kansai チャプターリーダー OWASP Japan アドバイザリボードメンバー 株式会社セキュアスカイ テクノロジー CTO セキュリティキャンプ講師 (2008~) CODE BLUE カンファレンスレビュー

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

FileMaker Instant Web Publishing Guide

橡セキュリティポリシー雛形策定に関する調査報告書

World Wide Web =WWW Web ipad Web Web HTML hyper text markup language CSS cascading style sheet Web Web HTML CSS HTML


untitled

ウイルスバスター ビジネスセキュリティ インストールガイド

FileMaker 15 WebDirect ガイド

untitled

BIG‑IP Access Policy Manager | F5 Datasheet


雲の中のWebアプリケーション監視術!~いまなら間に合うクラウド時代の性能監視入門~

IT講習会

CAS Yale Open Source software Authentication Authorization (nu-cas) Backend Database Authentication Authorization Powered by A

HTML5 Security & Headers- X-Crawling-Response-Header-

Flash HTML CSS3 Animations Canvas + JavaScript CSS + JavaScript

Oracle Policy Automation 10.0システム要件

Firefox Firefox Mozilla addons.mozilla.org (AMO) AMO Firefox Mozilla AMO Firefox Firefox Mozilla Firefox Firefox Firefox 年間登録数

自己紹介 はせがわようすけ ネットエージェント株式会社 株式会社セキュアスカイ テクノロジー技術顧問 OWASP Kansai Chapter Leader OWASP Japan Chapter Advisory Board member

2 Java 35 Java Java HTML/CSS/JavaScript Java Java JSP MySQL Java 9:00 17:30 12:00 13: 項目 日数 時間 習得目標スキル Java 2 15 Web Java Java J

WebSocketを見てみよう

allows attackers to steal the username-password pair saved in the password manager if the login page or other pages in the same domain are vulnerable

SOC Report

54 5 PHP Web hellow.php 1:<?php 2: echo "Hellow, PHP!Y=n"; 3:?> echo PHP C 2: printf("hellow, PHP!Y=n"); PHP (php) $ php hellow.php Hellow, PHP! 5.1.2

PowerPoint プレゼンテーション

HTTP Web Web RFC2616 HTTP/1.1 Web Apache Tomcat (Servlet ) XML Xindice Tomcat 6-2

PowerPoint プレゼンテーション

WebOS aplat WebOS WebOS 3 XML Yahoo!Pipes Popfry UNIX grep awk XML GUI WebOS GUI GUI 4 CUI

FileMaker Instant Web Publishing Guide

第7回 Javascript入門

_‚Ofl¼

Teradici Corporation # Canada Way, Burnaby, BC V5G 4X8 Canada p f Teradici Corporation Teradi

e10s におけるプロセス間通信の基本 219 HACK #34 Components.manager.removeBootstrappedManifestLocati on() function shutdown(adata, areason) { const IOService =

rzammpdf.ps

帯域を測ってみよう (適応型QoS/QoS連携/帯域検出機能)

10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name = "" => "" > item.valid? => true valid? true false

アジェンダ 0. 導入 1. Web API(Web サービス ) 2. マッシュアップの構図 3. ブラウザオブジェクト < 休憩 > 4. クライアント側コードに起因するスクリプト注入 5. 同一源泉 と 他源泉 6. 他のマッシュアップ論点の学習方法 2

SSO Sales/Tech combined webinar template

v6

Transcription:

7 : (XSS, CSRF) TLS : ( ) Same Origin Policy JSON JSONP CORS (Google Analytics) : Web 1 / 24

iframe err.html: iframe same origin.html: iframe err.html mashup.html: twitter google ( ) json test.rb: ruby JSON xhr2.html: XHR2 gbook.html gmap.html 2 / 24

? PC ActiveX Plugin ( ) (Web ) https Same Origin Policy (?) : Sniffing, Man-in-the-Middle (MITM), MITB, Replay : Spoofing (IP address, ARP, DNS), DNS : DDoS 3 / 24

OWASP Top 10-2013 OWASP: Open Web Application Security Project A1 A2 (broken) A3 (XSS) A4 : A5 A6 (exposure) A8 A8 (CSRF) A9 A10 OWASP:Web Web 4 / 24

典 型 的 なWebの 提 供 形 態 1ページ1サイト HTML ブラウザ ( ) http サーバー LAMP img 1ページ 複 数 サイト iframe ブラウザ サーバー L: Linux A: Apache M: MySQL P: PHP,Per サーバー フレームでサ イトを 区 分 け サーバー : facebook <iframe src="http://www.facebook.com/plugins/like.php?href= &layout=standard&show_faces=true&width=300&action=like &colorscheme=light&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:80px;" allowtransparency="true"></iframe> (X-Frame-Options ) same origin policy 5 / 24

Same Origin Policy Same Origin Policy Same Origin Same Origin 2 : ( FQDN ) (http https ) 6 / 24

IFRAME, FRAME, FORM DOM IMG (Web ) SCRIPT CSS same origin (JSONP ) XmlHttpRequest ( ) XHR2 ( ) 7 / 24

iframe <iframe id="if1" src= html> </iframe> <iframe id="if2" src= html> </iframe> if1 if2 iframe JS : iframe err.html same origin.html sic 8 / 24

? same origin? path cookie path path URL Same origin policy document.domain X-FRAME-OPTIONS Cookie domain xhr XHR2 ( ) 9 / 24

Cookie cookie same origin policy origin JS cookie path iframe document.cookie JS origin iframe cookie secure https httponly JS : first party cookie third party cookie <img src="..."> ( ) cookie Cookie 10 / 24

JSONP JSONP 3 JSONP : <script src="http:...?jsonp=callback"> function callback(data){ } </script> (jsonp= API ) : script 11 / 24

JSONP API JSONP : yahoo mashup.html JSONP 12 / 24

: iframe ( ) 2 iframe frame location html iframe A iframe B Web server iframe A iframe iframe B web server iframe B Web server xhr iframe A iframe B iframe B location.hash location iframe A iframe B iframe A location.hash location A B hash resize resize A 13 / 24

CORS (Cross-Origin Resource Sharing) (W3C Recommendation) Same origin policy : 3 CORS : Web XMLHttpRequest level 2, Server-sent event xhr2.html 14 / 24

CORS www.3rdparty.com :.htaccess Header set Access-Control-Allow-Origin "*" ( xhr2 ) www.example.com/webapp.html http://www.3rdparty.com/data.json XHR2 UA www.3rdparty.com GET /data.json HTTP/1.1 Origin: www.example.com www.3rdparty.com UA Access-Control-Allow-Origin: * expose (expose W3C CORS ) XHR2 15 / 24

CORS preflight PUT/DELETE preflight preflight OPTION Access-Control-Request-Method OK : Access-Control-Allow-Methods OK CORS PUT/DELETE : PUT/DELETE Same Origin CORS PUT/DELETE CORS 16 / 24

CORS credential credential HTTP ( ) omit credentials flag: UA user credential cookie API flag, credential xhr.withcredentials=true; credential Access-Control-Allow-Credentials: true JS expose preflight credential 17 / 24

google analytics ( ) <script> (function(i,s,o,g,r,a,m){ i[ GoogleAnalyticsObject ]=r; i[r] = i[r] function(){(i[r].q=i[r].q []).push(arguments)}, i[r].l= a=s.createelement(o), m=s.getelementsbytagname(o)[0]; a.async=1; a.src=g; m.parentnode.insertbefore(a,m)}) (window, document, script, //www.google-analytics.com/analytics.js, ga ); ga( create, UA-XXXX-Y, auto ); ga( send, pageview ); </script> window[ GoogleAnalyticsObject ]= ga ; window[ ga ] = window[ ga ] // ga function(){ // (window[ ga ].q=window[ ga ].q []).push(arguments) }, window[ ga ].l=1*new Date(); a=s.createelement( script ), m=s.getelementsbytagname( script )[0]; a.async=1; a.src= //www.google-analytics.com/analytics.js ; m.parentnode.insertbefore(a,m) // script insert ga( create, UA-XXXX-Y, auto ); ga( send, pageview ); ga q push 18 / 24

analytics.ja Ga : Ga=function(a,b,c,d){ // a URL b c=c L; d&&(d=c,o[oa].sendbeacon?o[oa].sendbeacon(a,b)?(d(),d=!0):d=!1:d=!1); // sendbeacon W3C if(!d) // sendbeacon if(2036>=b[y]) wc(a,b,c); // 2036 wc() else if(8192>=b[y]){ // 2036 8192 if(0<=o[oa].useragent[t]("firefox")&&![].reduce) throw new Ea(b[y]); wd(a,b,c) xd(a,b,c) Fa(b,c) c() } else throw new Da(b[y]); //?? }, wc : wc=function(a,b,c){ var d=ca(a+"?"+b); } Ca : function Ca(a){ var b=m[u]("img"); b.width=1; b.height=1; b.src=a; return b } // M=document, u="createelement" // img 1x1 ( ): wd() XHR POST XHR false ( Measurement Protocol) xd() IE XDomainRequest IE false Fa() 0x0 iframe GET 19 / 24

google analytics (ga) ID ga("create", ID, {"userid": ID }); ID: "UA- ID- " ID: ga (= ) ID : ga ID: ID ID: ID first party cookie cookie "_ga" _ga analytics.js 20 / 24

? ga( send, pageview ); 2 pageview: page event: button click social: Facebook Twitter timing: ( ) analytics.js ga() 4 : http://www.google.com/intl/ja_all/analytics/index.html 21 / 24

Defensive Programming, Secure Coding Top 10 Secure Coding Practices (CERT) Validate input Heed compiler warnings (Heed = ) Architect and design for security policies (policy ) Keep it simple Default deny Adhere to the principle of least privilege ( ) Sanitize data sent to other systems Practice defense in depth ( ) Use effective quality assurance techniques ( ) Adopt a secure coding standard 22 / 24

: DNT Don t Track Me DNT: 1 http RFC 23 / 24

? GUI Canvas, WebGL? : : packaged web apps, node-webkit, Apache cordova? ( HTML ) Chrome OS, Firefox OS Node.js ( JS) 24 / 24