/[pub]/suikawiki/sw4data/ids/2/569.txt
Suika

Contents of /suikawiki/sw4data/ids/2/569.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.52 - (hide annotations) (download)
Wed Nov 13 12:31:49 2013 UTC (11 years ago) by wakaba
Branch: MAIN
Changes since 1.51: +1 -1 lines
File MIME type: text/plain
updated by (anon)

1 wakaba 1.1 [4]
2 wakaba 1.51 [DFN[[RUBY[同一起源ポリシー]@en[same origin policy]]]]は、
3 wakaba 1.52 [[Web]] において、[[スクリプト]]が異なる[[起源]] [WEAK[([[URL scheme]]、[[ホスト]]、[[ポート]]の組など)]]
4 wakaba 1.51 に由来する[[物体]]に対してアクセスすることを制限する[[セキュリティー]]に関する大原則です。
5 wakaba 1.1
6 wakaba 1.22 ;; [55] たまに [DFN[[[SOP]]]] と略されることがあります。
7    
8     * 仕様書
9    
10     [REFS[
11 wakaba 1.26 - [5] '''[CITE@en[RFC 6454 - The Web Origin Concept]] ([TIME[2011-12-12 09:13:37 +09:00]] 版) <http://tools.ietf.org/html/rfc6454>'''
12 wakaba 1.1 - [3]
13 wakaba 1.23 [CITE@en-US-x-hixie[HTML 5]] ([TIME[2008-07-04 05:49:35 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#origin>
14 wakaba 1.22 ]REFS]
15 wakaba 1.1
16 wakaba 1.51 * 同一起源ポリシーの原理
17 wakaba 1.23
18     [56] [[Webアプリケーション]]は、[[鯖]]が提供した[[スクリプト]]等を [[Webブラウザー]]上の環境において実行、
19     評価するものですが、適切な[[セキュリティー・モデル]]が無ければ[[利用者]]やその他の人が意図しない有害な動作がなされてしまうかもしれません。
20     [[同一起源方針]]は [[Webブラウザー]]上で動作する[[Webアプリケーション]]のための[[セキュリティー・モデル]]として発展、収束してきたものです。
21     [[RFC 6454]] で [[Adam Barth]] は次の基本原理をまとめています。
22    
23     - Trust
24     - Origin
25     - Authority
26     - Policy
27    
28 wakaba 1.24 ** Trust
29    
30     [57] [[同一起源方針]]においては [[URL]] によって [[trust]] を指定していると言えます。
31    
32     [EG[
33     [58] 例えば [CODE(HTMLe)@en[[[script]]]] [[要素]]によって [[URL]]
34     を指定して外部の[[スクリプト]]を読み込むことは、
35     自身の持つ[[特権]]を当該 [[URL]] に対して付与していることになります。
36     つまり当該 [[URL]] から得られる情報の[[一貫性]]を信頼 (trust) すると宣言していると言えます。
37     ]EG]
38    
39     [EG[
40     [59] また [CODE(HTMLe)@en[[[form]]]] [[要素]]によって [[POST]] 先の [[URL]]
41     を指定することは、秘密のデータを当該 [[URL]] に対して開示することになります。
42     つまり当該 [[URL]] に送られるデータの秘匿性を信頼 (trust) すると宣言していると言えます。
43     ]EG]
44    
45     ** Origin
46    
47     [60] あらゆる [[URL]] にそれぞれ個別の保護された領域を与えることもできますが、
48     それでは実用上不便なので、[[同一起源方針]]にあっては[[ドメイン]]などが共通する [[URL]] 群を
49     [[起源]] (origin) と呼び、これを保護の単位とします。
50    
51     [EG[
52     [61] 例えば [CODE(URI)@en[http://example.com/]] と [CODE(URI)@en[http://example.com/~mypage/]]
53     は [CODE(URI)[http://example.com]] という共通の[[起源]]を持ちます。しかし
54     [CODE(URI)[http://www.example.com/]] や [CODE(URI)@en[http://example.com:8080/]]
55     の[[起源]]はそれぞれ
56     [CODE(URI)[http://www.example.com]] や [CODE(URI)@en[http://example.com:8080]]
57     であり、異なります。
58     ]EG]
59    
60     ** Authority
61    
62     [62] [[起源]]が同じであっても、[[資源]]はそれぞれの権限 (authority) を持っています。
63     どれだけの権限を与えるかは [[MIME型]]により決まります。
64    
65     [EG[
66     [63] 例えば [CODE(MIME)@en[[[image/png]]]] の[[資源]]は[[画像]]であり、 [[API]]
67     その他へのアクセス権を有しません。一方 [CODE(MIME)@en[[[text/html]]]] の[[資源]]は
68     [[HTML文書]]であり、[[スクリプト]]の実行その他の様々な権限を有します。
69     ]EG]
70    
71     ** Policy
72    
73     [64] [[同一起源方針]]においては[[起源]]はそれぞれ別に管理されており、他の[[起源]]との通信は制限されています。
74     他の[[起源]]の[[API]]アクセスは原則として禁止されていますし、他の[[起源]]の[[資源]]を読み取ることもできません。
75     他の[[起源]]に情報を送ることは認められていますが、一部の決められた形式に制限されています。
76 wakaba 1.23
77 wakaba 1.25 [EG[
78     [65] 例えば [[DOM]] の [[API]] によって他の[[起源]]の[[文書]]にアクセスすることはできません。
79     [CODE(DOM)@en[[[postMessage]]]] など例外はありますが、それ以外は [[Webブラウザー]]により厳密に管理されています。
80     ]EG]
81    
82     [EG[
83     [66] [[XHR]] によって他の[[起源]]の[[資源]]を読み取ることは、 [[CORS]] により例外的に認められていない限り、
84     禁止されています。
85     ]EG]
86    
87 wakaba 1.1 * 適用対象
88    
89     [9]
90 wakaba 1.42 いくつかの挙動はそれが同じ[[起源]]に対して行われた操作に由来するか否かによって変化します。
91     一般に他の[[起源]]の状態や処理結果は取得できません。
92 wakaba 1.1
93     @@ このリストは不完全です。
94    
95 wakaba 1.42 [FIG[
96 wakaba 1.51 -[20] [CODE(DOMa)@en[[[window]]]] や [CODE(DOMa)@en[[[location]]]]
97 wakaba 1.1 の[[メンバー]] (一部例外を除きます。) に対する[[スクリプト]]からのアクセス
98     [SRC@en[[[HTML 5]]]]
99     --[26] ただし、[[Webブラウザ]]によっては、 [[HTML 5]] で例外とされている[[メンバー]]以外にも異なる[[起源]]の[[スクリプト]]からアクセスできてしまいます。
100     (例えば [[Gecko]] では [CODE(DOMa)@en[[[name]]]] や [CODE(DOMa)@en[[[status]]]] にアクセスできます。
101     [CODE(DOMa)@en[[[name]]]] の項を参照。)
102 wakaba 1.34 -- [84] [CODE(DOMi)@en[[[Window]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#security-2>
103 wakaba 1.35 -- [86] [CODE(DOMi)@en[[[Location]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#security-3>
104 wakaba 1.33 -- [82] [CODE(DOMa)@en[[[frameElement]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-frameelement>
105 wakaba 1.51 -- [127] [CODE(DOMa)@en[[[contentDocument]]]]:
106     [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-11-12 21:53:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-iframe-contentdocument>
107     [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-11-12 21:53:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-object-contentdocument>
108     [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-11-12 21:53:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-frame-contentdocument>
109     -- [128] [CODE(DOMm)@en[[[getSVGDocument]]]]
110 wakaba 1.33 -- [83] [[navigation]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#allowed-to-navigate>
111 wakaba 1.9 -[23] [[CSSOM]] へのアクセス [SRC[仕様なし]]
112     - [33] 外部資源へのアクセス
113     --[21] [CODE(DOMi)@en[[[XMLHttpRequest]]]] による[[外部資源]]へのアクセス
114 wakaba 1.1 [SRC@en[[[XMLHttpRequest]], [[XMLHttpRequest]] 2]]
115 wakaba 1.9 --[22] [[WebSocket]] による接続 [SRC@en[[[HTML 5]]]]
116     --[31] [CODE(DOMi)@en[[[Document]]]] [[オブジェクト]]の
117 wakaba 1.6 [CODE(DOMm)@en[[[load]]]] で読み込める [[URL]]
118 wakaba 1.27 [DEL[([[MSXML]]、[[Gecko]] など; [[DOM3LS]] [[CR]] にあったが同一起源方針に関する仕様はなし)]] [SRC[>>71]]
119 wakaba 1.28 --- [71] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-xmldocument-load>
120 wakaba 1.9 -- [34] [[XSLT]] [CODE(XPathf)@en[[[document()]]]] [[関数]]による別[[起源]]の[[資源]]へのアクセス [SRC[仕様なし]]
121 wakaba 1.12 -[37] [CODE(DOMa)@en[[[mozIsLocallyAvailable]]]]
122 wakaba 1.18 - [43] [[SOAP]]
123     -- <https://developer.mozilla.org/ja/SOAP_in_Gecko-based_Browsers>
124 wakaba 1.27 - [73] [CODE(DOM)@en[[[onerror]]]]
125 wakaba 1.35 -- [95] [CODE(DOMi)@en[[[[Window]]]]: CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors>
126     -- [96] [CODE(HTMLe)@en[[[iframe]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-iframe-element>
127     -- [[navigation]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#navigating-across-documents>
128 wakaba 1.28 - [74] [CODE(HTMLa)@en[[[seamless]]]]
129     -- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-seamless>
130     - [77] [CODE(HTMLe)@en[[[canvas]]]] の[[起源汚染]]
131     -- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#security-with-canvas-elements>
132     - [75] [[Web Fonts]] の利用
133     -- [76] [CODE(DOMm)@en[[[measureText]]]] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-measuretext>
134 wakaba 1.29 - [78] [CODE(HTMLa)@en[[[autofocus]]]] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#attr-fe-autofocus>
135 wakaba 1.31 - [80] [CODE(HTMLa)@en[[[ping]]]] [[要求]] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#hyperlink-auditing>
136 wakaba 1.32 - [81] [[奇癖モード]]における [[[CODE(MIME)@en[Content-Type]]メタデータ]]の扱い [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#link-type-stylesheet>
137 wakaba 1.35 - [85] [CODE(DOMm)@en[[[replaceState]]]]
138     -- [91] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-history-replacestate>
139     -- [92] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#history-traversal>
140     - [87] [[AppCache]]
141     -- [88] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#navigating-across-documents>
142     -- [93] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#concept-appcache-matches-fallback>
143     -- [94] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#changesToNetworkingModel>
144     - [89] [[HTTP]] [[redirect]]
145     -- [90] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#navigating-across-documents>
146     - [97] [CODE(URI)@en[[[javascript:]]]] [[URL]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#javascript-protocol>
147     - [98] [[dialog]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-showmodaldialog>
148     - [99] [CODE(DOMm)@en[[[registerProtocolHandler]]]], [CODE(DOMm)@en[[[registerContentHandler]]]]:
149     [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#custom-handlers>
150     - [100] [CODE(DOMm)@en[[[IsSearchProviderInstalled]]]]:
151     [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-external-issearchproviderinstalled>
152     - [101] [[Web Workers]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#processing-model-4>
153     - [106] [CODE(DOMa)@en[[[sessionStorage]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-sessionstorage-attribute>
154     - [107] [CODE(DOMa)@en[[[localStorage]]]]: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-localstorage-attribute>
155 wakaba 1.36 - [108] [CODE(DOMe)@en[[[unload]]]] 中の [[navigation]]
156     -- [[Gecko]] と [[Opera]] では [[same-origin policy]] の対象になります。
157     [[WebKit]] ではまったく認められていません。
158 wakaba 1.42 - [109] [CODE(DOMi)@en[[[PerformanceTiming]]]] から値を取得できるか否か
159     -- [CITE@en[Navigation Timing]] ([TIME[2012-12-13 06:51:35 +09:00]] 版) <http://www.w3.org/TR/2012/REC-navigation-timing-20121217/#sec-navigation-timing-interface>
160     - [114] [CODE(DOMe)@en[[[error]]]] [[イベント]]が[[発火]]するかどうか [SRC[[[HTML]]]]
161     ]FIG]
162 wakaba 1.1
163 wakaba 1.26 * 起源の値によって動作が変わるもの
164 wakaba 1.1
165 wakaba 1.42 [115] [[起源]]が[[三項組]]であるか固有識別子であるか、あるいはその[[三項組]]がどのような値であるかによって、
166     挙動が変わることがあります。
167 wakaba 1.41
168     [FIG[
169 wakaba 1.26 - [68] [[fetch]] において [CODE(HTTP)@en[[[Referer:]]]] を送出する条件
170     -- [[起源]]が[[3項組]]で''なければ''、 [CODE(HTTP)@en[[[Referer:]]]] を送っては[['''なりません''']] [SRC[>>67]]。
171 wakaba 1.28 -- [67] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#fetch>
172 wakaba 1.27 - [70] [CODE(JS)@en[[[document.cookie]]]] を使える条件
173     -- [[起源]]が[[3項組]]で''なければ''、 [CODE(JS)@en[[[document.cookie]]]] には読み書きできません [SRC[>>69]]。
174 wakaba 1.28 -- [69] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-document-cookie>
175 wakaba 1.30 - [79] [[ダウンロード]]時の[[ファイル名]] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#downloading-hyperlinks>
176 wakaba 1.35 - [104] [CODE(DOMi)@en[[[WebSocket]]]]
177     -- [105] [[https:]] から [[ws:]] にはアクセスできない: [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#dom-websocket>
178 wakaba 1.43 - [116] [[encoding sniffing algorithm]] において[[親閲覧文脈]]を参照するか否か
179     -- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-04-30 04:07:36 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#encoding-sniffing-algorithm>
180 wakaba 1.41 ]FIG]
181 wakaba 1.1
182     * 適用対象外
183    
184     [10]
185     歴史的な理由により、次の場合には同一起源方針は適用されません。
186     - [CODE(HTMLa)@en[[[src]]]] [[属性]]、
187     [CODE(HTMLe)@en[[[object]]]] [[要素]]、
188     [CODE(HTMLe)@en[[[embed]]]] [[要素]]、
189     [CODE(HTMLe)@en[[[link]]]] [[要素]]などによる外部[[資源]]の埋め込み
190     -- [CODE(HTMLe)@en[[[img]]]] [[要素]]や [CODE(HTMLe)@en[[[iframe]]]]
191     [[要素]]など
192     -- [CODE(HTMLe)@en[[[script]]]] [[要素]]による外部[[スクリプト]]の参照も含みます。
193     これがそもそも設計上の意図的なものなのか、設計ミスなのかはわかりませんが、
194     [[JSONP]] などで同一起源方針を擦り抜けるテクニックとしてよく利用されています。
195     -- これらの[[要素]]や[[属性]]を使うと、本来[[スクリプト]]から取得できないべきである、
196     異なる[[起源]]の情報を取得することができてしまいます。前述のスクリプト実行だけでなく、
197     例えば、[[画像]]の大きさを取得することで、その内容を推測できてしまうかもしれません。
198     -- 外部[[スタイル・シート]]については、非同一起源でも読み込まれて文書に適用されますが、
199     [[スクリプト]]による [[CSSOM]] の参照に関しては同一起源方針の適用対象になります
200     (ただし各[[ブラウザ]]とも動作が怪しい)。
201     -- 外部 [[CSS]] [[スタイル・シート]]中の
202     [CODE(CSS)@en[[[expression]]()]]
203     - [[画像]]系 [[CSS]] [[特性]]による外部[[画像]]の埋め込み
204     - [CODE(CSS)@en[[[-moz-binding]]]] [[特性]]による外部 [[XBL 1.0]]
205     [[文書]]の読み込み
206     - [CODE(CSS)@en[@[[import]]]] による外部 [[CSS]] [[スタイル・シート]]の[[輸入]]
207     - [[Webフォント]]
208     -- 一部ブラウザ実装。今後の動向次第で変更される可能性あり。
209     -[18] [[Cookie]]
210     -- [CODE(HTTP)@en[[[Set-Cookie]]:]] [[頭欄]]内で発行対象の[[ドメイン]]を指定できます。
211 wakaba 1.17 -- [CODE(JS)@en[[[document.cookie]]]] を使っても書き込みできます。
212 wakaba 1.8 -[25] [CODE(DOMm)@en[[[postMessage]]]] [[メソッド]]を使うと、
213     異なる[[起源]]の [[Web頁]]に対して文字列を伝達できます。
214     -[32] [CODE(HTMLa)@en[[[marginwidth]]]] など[[フレーム]]内の[[余白]]を設定する[[属性]]を使うと、
215     [[フレーム集合文書]]とは異なる[[起源]]の[[フレーム]]内[[文書]]の[[余白]]を設定できます。
216     -- [[フレーム]]は [[CSS]] によるレンダリング・モデル以前に実装された歴史的経緯によります。
217 wakaba 1.13 - [38] [CODE(JS)@en[[[window.name]]]]
218     - [39] [CODE(HTMLa)@en[[[marginheight]]]], [CODE(HTMLa)@en[[[marginwidth]]]]
219 wakaba 1.35 - [102] [CODE(DOMi)@en[[[EventSource]]]]
220     - [103] [CODE(DOMi)@en[[[WebSocket]]]]
221 wakaba 1.8
222 wakaba 1.40 * 要調査
223    
224     @@
225     - [16] [[XSLT]] [[スタイル・シート]]
226     - [111] [CODE(XMLe)@en[[[xml]]]] [[要素]]
227     - [112] [[IE]] [CODE(HTMLa)@en[[[data*]]]]
228     - [113] [[HTC]] / [[XBL]]
229 wakaba 1.8
230     * [11] 制約の緩和
231 wakaba 1.1
232     - [15] [CODE(JS)@en[[[document]].[[domain]]]] [[DOM属性]]に値を設定することにより、
233     [[起源]]となる[[ドメイン名]]を変更することができます。
234     --ただし、新しい[[ドメイン名]]は元の[[ドメイン名]]の上位階層に当たるものでなければなりません。
235 wakaba 1.17 - [12] [[CORS]] により、''外部[[資源]]は''、異なる[[起源]]からのアクセスを許可することができます。
236     -- [13] [[Microsoft]] が提案し、 [[WinIE 8]] で実装している
237 wakaba 1.1 [CODE(DOMi)@en[[[XDomainRequest]]]] を用いると、
238     異なる[[ドメイン]]の[[資源]]にアクセスできます。
239     - [14] [[WinIE]] で実装されている[[セキュリティ・ゾーン]]の機能により、
240     [[イントラネット]]等[[ゾーン]]毎に、
241     [[同一起源方針]]を[[利用者]]の設定により緩和することができます。
242     -[17]
243     [[Adobe]] [[Air]] は異なる[[起源]]に対する [CODE(DOMi)@en[[[XMLHttpRequest]]]]
244     でのアクセスを可能にする [CODE(HTMLa)@en[[[allowcrossdomainxhr]]]]
245     [[属性]]を実装しています。
246     -[19] [CODE(DOMa)@en[[[globalStorage]]]]
247     --かつて [[HTML 5]] に含まれていました。
248     --現在は削除され、代わりに [CODE(DOMa)@en[[[localStorage]]]] が定義されていますが、
249     こちらは[[同一起源方針]]に完全に従っています。
250     -- [[Firefox]] 3 が実装しています。
251     -- [CODE(JS)@en[[[document]].[[domain]]]] [[DOM属性]]の設定と同じようなアクセス制約があります。
252 wakaba 1.18 - [44] [[Gecko]] は特権を取得することで一部制限を回避できるらしい
253     -- <https://developer.mozilla.org/ja/SOAP_in_Gecko-based_Browsers>
254 wakaba 1.1
255    
256 wakaba 1.4 * 媒体
257    
258     [30] [CITE[Re: Same-origin checking for media elements]] ([[Ian Hickson <ian@...>]] 著, [TIME[2008-11-17 01:37:36 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/16571>
259    
260     * 労働者
261    
262     @@ ・・・
263    
264 wakaba 1.2 * 局所ファイル
265 wakaba 1.1
266 wakaba 1.2 [27] [[HTML5]] は[[局所ファイル]]に関しては[[相互運用性]]に関係しないため適用範囲外として規定していません。
267 wakaba 1.1
268 wakaba 1.2 [28] [CITE@ja[Chromeセキュリティモデル、IE/Firefox/Safari/Operaのいいとこ取り | エンタープライズ | マイコミジャーナル]] ([[Mainichi Communications Inc.]] 著, [TIME[2008-12-09 08:24:36 +09:00]] 版) <http://journal.mycom.co.jp/news/2008/12/08/031/>
269 wakaba 1.1
270 wakaba 1.3 [29] [CITE[Chromium Blog: Security in Depth: Local Web Pages]] ([TIME[2008-12-13 15:47:53 +09:00]] 版) <http://blog.chromium.org/2008/12/security-in-depth-local-web-pages.html>
271    
272 wakaba 1.1
273     * 歴史
274    
275     [6] 同一起源方針は、 [[Netscape Navigator]] 2.0 で [[JavaScript]]
276     と共に導入され [SRC[>>1、>>2]]、2.01 および 2.02 で不具合の修正がなされました
277     [SRC[>>1]]。
278    
279     [7] [[Internet Explorer]] をはじめとする他ブラウザも同様にこの制限を実装しましたが、
280     [[ECMAScript]] 仕様や [[DOM]] 仕様としての標準化の対象外とされ、
281     長らく明文化された規定が存在していませんでした。
282    
283     [8] [[HTML DOM]] に関係する部分はようやく2005年頃に [[WHATWG]]
284     によって [[HTML 5]] 仕様の一部として仕様の明文化が行われ始めました。
285     また、 [[XMLHttpRequest]] に関しては [[HTML 5]] 仕様を参照する形で規定されています。
286    
287 wakaba 1.51 [126] [CODE(DOMi)@en[[[Document]]]] は、当初は[[オブジェクト]]そのものは取得できるものの、
288     そのメンバーは一切読み書きできないとなっていましたが、 [CODE(DOMa)@en[[[contentDocument]]]]
289     などが異なる[[起源]]の場合 [[null]] を返すよう変更され、異なる[[起源]]の [CODE(DOMi)@en[[[Document]]]]
290     [[オブジェクト]]にアクセスすること自体ができなくなりました。
291    
292     [REFS[
293     - [124] [CITE@en[Web Applications 1.0 r8272 Change iframe, frame, and object.contentDocument to return null when cross-origin documents are involved.]] ([TIME[2013-11-13 06:50:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=8271&to=8272>
294     - [125] [CITE@en[Web Applications 1.0 r8273 Remove security checks on Document since there should now be no way to get to a Document from another origin.]] ([TIME[2013-11-13 06:53:00 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=8272&to=8273>
295     ]REFS]
296 wakaba 1.1
297    
298     * メモ
299    
300     [2]
301     [CITE[JavaScript Security: Same Origin]] ([CODE[2008-06-18 04:13:16 +09:00]] 版) <http://www.mozilla.org/projects/security/components/same-origin.html>
302    
303     [1]
304 wakaba 1.10 [CITE@en[Same origin policy - Wikipedia, the free encyclopedia]] ([CODE[2008-07-02 01:06:45 +09:00]] 版) <http://en.wikipedia.org/wiki/Same_origin_policy>
305    
306 wakaba 1.11 [35] [CITE@en-us[Same origin policy for JavaScript - MDC]] ([TIME[2009-02-17 13:34:30 +09:00]] 版) <https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript>
307    
308     [36] [CITE[The Multi-Principal OS Construction of the Gazelle Web Browser - Microsoft Research]] ([TIME[2009-03-07 00:35:15 +09:00]] 版) <http://research.microsoft.com/apps/pubs/default.aspx?id=79655>
309    
310 wakaba 1.17 [[Webブラウザー]]の[[プロセス]]を[[起源]]毎に分離することによって[[保安性]]の向上を図る[[論文]]だそうです。
311    
312     [40] [CITE@en[(X)HTML5 Tracking]]
313     ([TIME[2009-09-30 00:11:40 +09:00]] 版)
314     <http://html5.org/tools/web-apps-tracker?from=4041&to=4042>
315    
316     [41] [CITE[IRC logs: freenode / #whatwg / 20100223]]
317     ([TIME[2010-02-25 09:03:01 +09:00]] 版)
318     <http://krijnhoetmer.nl/irc-logs/whatwg/20100223>
319    
320     [42] [CITE['''['''whatwg''']''' Canvas 2D Context Proposal: resetOriginClean]]
321     ([TIME[2010-04-25 01:54:34 +09:00]] 版)
322 wakaba 1.21 <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-April/026006.html>
323    
324     [45] [CITE@en[Guidelines for Web Content Transformation Proxies 1.0]]
325     ( ([TIME[2010-10-22 17:20:31 +09:00]] 版))
326     <http://www.w3.org/TR/2010/NOTE-ct-guidelines-20101026/#term-same-origin>
327    
328     [46] [CITE@en[Web Applications 1.0 r5873 Make sure cross-origin fonts can't leak data via <canvas>.]]
329     ( ([TIME[2011-02-11 10:48:00 +09:00]] 版))
330     <http://html5.org/tools/web-apps-tracker?from=5872&to=5873>
331    
332     [47] [CITE[Embedder's Guide - V8 JavaScript Engine - Google Code]]
333     ( ([TIME[2010-11-13 19:00:12 +09:00]] 版))
334     <http://code.google.com/intl/ja/apis/v8/embed.html>
335    
336     [48] [CITE@en[draft-abarth-principles-of-origin-00 - Principles of the Same-Origin Policy]]
337     ([TIME[2011-02-22 08:21:31 +09:00]] 版)
338     <http://tools.ietf.org/html/draft-abarth-principles-of-origin-00>
339    
340     [49] [CITE@en[Thoughts on font linking and embedding]]
341     ( ([[Maciej Stachowiak]] 著, [TIME[2011-02-17 04:28:23 +09:00]] 版))
342     <http://lists.w3.org/Archives/Public/public-webfonts-wg/2011Feb/0066.html>
343    
344     [50] [CITE@en[Thoughts on font linking and embedding]]
345     ( ([[Maciej Stachowiak]] 著, [TIME[2011-02-17 04:28:23 +09:00]] 版))
346     <http://lists.w3.org/Archives/Public/public-webfonts-wg/2011Feb/0066.html>
347    
348     [51] [CITE['''['''whatwg''']''' Canvas and drawWindow]]
349     ([TIME[2011-03-15 13:03:35 +09:00]] 版)
350     <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-March/030862.html>
351    
352     [52] [CITE[IRC logs: freenode / #whatwg / 20110202]]
353     ( ([TIME[2011-03-19 11:10:11 +09:00]] 版))
354     <http://krijnhoetmer.nl/irc-logs/whatwg/20110202>
355    
356     [53] [CITE[IRC logs: freenode / #whatwg / 20110214]]
357     ( ([TIME[2011-03-23 00:25:04 +09:00]] 版))
358     <http://krijnhoetmer.nl/irc-logs/whatwg/20110214>
359    
360     [54] [CITE[クロスドメイン通信方法のまとめ - nopnopの日記]]
361     ( ([TIME[2011-04-24 11:59:01 +09:00]] 版))
362 wakaba 1.40 <http://d.hatena.ne.jp/nopnop/20080408/1207669947>
363    
364     [110] [CITE[''''''[''''''whatwg'''''']'''''' Need to define same-origin policy for WebIDL operations/getters/setters]]
365     ( ([TIME[2013-01-08 08:41:09 +09:00]] 版))
366 wakaba 1.51 <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-January/038529.html>
367    
368     [117] [CITE@en[Web Applications 1.0 r7975 Make showModalDialog()'s dialogArguments and returnValue only be useful same-origin, to avoid origins attacking each other]]
369     ( ([TIME[2013-06-15 03:12:00 +09:00]] 版))
370     <http://html5.org/tools/web-apps-tracker?from=7974&to=7975>
371    
372     [118] [CITE@en[Web Applications 1.0 r7975 Make showModalDialog()'s dialogArguments and returnValue only be useful same-origin, to avoid origins attacking each other]]
373     ( ([TIME[2013-06-15 03:12:00 +09:00]] 版))
374     <http://html5.org/tools/web-apps-tracker?from=7974&to=7975>
375    
376     [119] [CITE[''''''[''''''whatwg'''''']'''''' Adding crossorigin="" to more elements]]
377     ( ([TIME[2013-06-17 19:04:22 +09:00]] 版))
378     <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-June/039752.html>
379    
380     [120] [CITE@en[Web Applications 1.0 r7997 Block enumeration of cross-origin objects, and clean up the language around those objects to be more consistent so that differences can more easily be seen.]]
381     ( ([TIME[2013-06-25 05:28:00 +09:00]] 版))
382     <http://html5.org/tools/web-apps-tracker?from=7996&to=7997>
383    
384     [121] [CITE@en[Web Applications 1.0 r8090 Remove the weird stuff around document.domain and localStorage. It doesn't really do anything anyway.]]
385     ( ([TIME[2013-07-26 09:13:00 +09:00]] 版))
386     <http://html5.org/tools/web-apps-tracker?from=8089&to=8090>
387    
388     [122] [CITE@en[Web Applications 1.0 r8196 Add warning notes to the Security sections of Location and Window since they are in flux with no end in sight.]]
389     ( ([TIME[2013-09-24 06:42:00 +09:00]] 版))
390     <http://html5.org/tools/web-apps-tracker?from=8195&to=8196>
391    
392     [123] [CITE[IRC logs: freenode / #whatwg / 20130925]]
393     ( ([TIME[2013-09-26 20:51:11 +09:00]] 版))
394 wakaba 1.50 <http://krijnhoetmer.nl/irc-logs/whatwg/20130925>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24