[46] 本稿では CORS 以前の古い提案にあった <?access-control?>
処理指令、 Access-Control:
頭欄について説明しています。
[47] 最終的に Webブラウザーに実装された技術については CORS の項をご覧ください。
access-control
処理指令 (XML)[2] XML 文書で access-control
処理指令を使うと、
外部からその文書の内容を処理しようとするのを認めるかどうか指定できます。
[3] 例えば、 example.net の文書 A はスクリプトで example.com の文書 B を読み込んで処理するように設計されているとします。しかし、 文書 A を読込む Webブラウザは安全上の理由でこのようなドメインを超えた操作を認めていないかもしれません。
そこで、 access-control
処理指令で
example.net を認めると文書 B に記述すると、
(Webブラウザが対応していれば)
文書 A のスクリプトは文書 B
を処理できます。
[1] [AC] Authorizing Read Access to XML Content Using the <?access-control?> Processing Instruction 1.0 <http://www.w3.org/TR/2005/NOTE-access-control-20050613/>
VoiceXML 2.1 の附属書から分離されましたよ。 一応完成で改訂の予定無しだそうです。
RFC 2732 参照してるよorz (名無しさん 2005-06-13 23:12:28 +00:00)
[18] Authorizing Read Access to XML Content Using the <?access-control?> Processing Instruction 1.0 <http://www.w3.org/TR/2006/WD-access-control-20060517/> (名無しさん 2006-05-18 22:05:46 +00:00)
[19]
2006/waf/access-control/ (2007-02-02 22:10:19 +09:00
版) <http://dev.w3.org/cvsweb/2006/waf/access-control/>
(名無しさん 2007-02-02 13:20:28 +00:00)
[20]
Enabling Read Access for Web Resources (2007-02-16 03:36:23 +09:00
版) <http://www.w3.org/TR/2007/WD-access-control-20070215/>
(名無しさん 2007-02-17 03:28:18 +00:00)
[21]
Enabling Read Access for Web Resources (2007-06-18 22:59:12 +09:00
版) <http://www.w3.org/TR/2007/WD-access-control-20070618/>
(名無しさん 2007-06-21 04:59:43 +00:00)
[22]
Enabling Read Access for Web Resources (2007-10-02 00:23:22 +09:00
版) <http://www.w3.org/TR/2007/WD-access-control-20071001/>
(名無しさん)
[23]
Access Control for Cross-site Requests (2007-11-26 22:31:03 +09:00
版) <http://www.w3.org/TR/2007/WD-access-control-20071126/>
(名無しさん)
[27]
Access Control for Cross-site Requests (2008-02-14 07:35:35 +09:00
版) <http://www.w3.org/TR/2008/WD-access-control-20080214/>
(名無しさん)
[28] これ、しばらく見ないうちにどうなってしまったんだ・・・。内容が全然別物になってる件。
別に前のがよかったとはいわないけど、今のでよくなっているのか?? (名無しさん 2008-08-01 13:46:26 +00:00)
[29]
Access Control for Cross-Site Requests (2008-09-09 23:54:06 +09:00
版) <http://www.w3.org/TR/2008/WD-access-control-20080912/>
(名無しさん)
[3] AC 2
対象
access-control
内容
content := [(allow / deny / allow S deny) [S]
]]allow := 'allow=' (<"> access-list <"> / "'" access-list "'") ;; [1]
deny := 'deny=' (<"> access-list <"> / "'" access-list "'") ;; [1]
access-list := access-item *(S access-item) / "*" ;; [2]
access-item := host-name / partial-host-name / IPv4address / IPv6address ;; [3]
partial-host-name := "*." host-name ;; [4]
host-name
は仕様 AC 2
によれば RFC 2732 のものですが、
RFC 2732 は RFC 2396 を参照しています。
IPv4address
と IPv6address
も仕様 AC 2 によれば RFC 2732 のものですが、
RFC 2373 が参照されています。
[4]
access-control
処理指令を記述する場所については特に規定がありません。
文書中のどこでもよいということでしょうか。
[5]
access-control
処理指令は1つの文書中に何個でも記述できます
AC 2。
[6] AC 2
access-control
処理指令がある場合、access-control
処理指令があれば、
結合して考えます。access-control
処理指令が無い場合、
利用者エージェントの判断によります。[8] >>5 の算法では、 access-control
処理指令が含まれる文書自体が置かれている場所が関与していないことに注意して下さい。
a.example.net に置かれている文書で access-control
する時で、 a.example.net の他の文書からのアクセスを認めたいなら、
a.example.net が認められるような指定も明記しなければなりません。
[12] 利用者エージェントは安全への配慮から普通他のドメインにある文書を直接扱えないようにしています。
access-control
処理指令は便利さのためにこの制限を緩和しますが、
当然その分安全性は低くなります。
[13] 利用者エージェントの安全の制限はドメイン名等によって利用者が制御できるようにされていることが少なくありませんが、
>>6 の算法をそのまま適用すると、 access-control
処理指令が存在する場合に利用者の意思を反映させられなくなります。
CSS の !import
のように
access-control
よりも強い制御を利用者が指定できた方が便利かもしれません。
[14] 異なるドメインの文書の処理の制限は、 (利用者にとっての) 第三者に意図しないうちに情報が送られてしまうことを防ぐ意味もあります。 例えば example.net の文書 A から example.com の文書 B を (example.com 鯖側で処理される) 引数 q をつけて呼び出すように記述されているとしますと、 利用者は気づかないうちに引数 q という情報を第三者に渡してしまうのです。
外部のドメインたる example.com
の文書 B の取得の試み自体を安全制限違反で弾いてしまうのであれば、
引数 q が渡されることはありません。しかし
access-control
処理指令を読むためには文書
B を読まなければなりませんから、その時点で引数 q
が渡されてしまうのです。
<?access-control allow="voice.roadrunner.example voice.acme.example"?>
この例の場合、 voice.roadrunner.example や voice.acme.example は認められますが、 それ以外はすべて認められません。
[9] ワイルドカードを使った例 AC 2
<?access-control allow="*.roadrunner.example *.acme.example"?>
voice.roadrunner.example や voice.acme.example はこの例でもやはり認められますが、 それだけではなく、 image.roadrunner.example や www.acme.example も認められます。 しかし acme.example は認められません。
[10] すべて認める例 AC 2
<?access-control allow="*"?>
あらゆるホストが認められます。
[11] 一部だけ認めない例 AC 2
<?access-control allow="*.example.com" deny="*.visitors.example.com"?>
www.example.com は認められますが、 www.visitors.example.com は認められません。
なお、構文 >>3 により deny
属性は
allow
属性の後に書かなければなりません。
算法 >>6 により、 deny
属性が
allow
属性より優先されます。
[15] RE: Comments on "Authorizing Read Access to XML Content Using the <?access-control?> Processing Instruction 1.0" from Ian Hickson on 2005-12-06 (public-appformats@w3.org from December 2005) <http://lists.w3.org/Archives/Public/public-appformats/2005Dec/0002.html>
Ian Hickson による問題点の指摘。 (名無しさん 2005-12-24 03:24:17 +00:00)
[16] 元々開発していた Voice Browser WG は、 out of scope なので勧告まで進めないと決めました。 しかし、 Ajax などでも有用なので、引き取り先の WG を探していました。 Web 応用系2WG のどちらかがよいのですが、 どちらも (例によって) 作業が遅れまくりなので、 やりたいけど大変だ〜なんて話してましたw どうなるのでしょうw
(名無しさん 2005-12-24 03:30:10 +00:00)
[24]
Access Control for Cross-site Requests (2008-01-16 15:39:42 +09:00
版) <http://dev.w3.org/cvsweb/~checkout~/2006/waf/access-control/Overview-Declarative.html?content-type=text/html;%20charset=iso-8859-1>
(名無しさん)
[25]
Access Control for Cross-site Requests: Proposed Restructuring (2008-01-17 04:52:01 +09:00
版) <http://dev.w3.org/cvsweb/~checkout~/2006/waf/access-control/Overview-Declarative-20080116.html?content-type=text/html;%20charset=iso-8859-1>
(名無しさん)
[26]
[Editorial Draft] Access Control for Cross-site Requests Requirements (2008-01-16 08:08:53 +09:00
版) <http://dev.w3.org/cvsweb/~checkout~/2006/waf/access-control/AccessControl-Requirements?content-type=text/html>
(名無しさん)
[30] [access-control] Update (Anne van Kesteren 著, 版) <http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0033.html> (名無しさん)
[17] XML:DB Initiative: Projects <http://xmldb-org.sourceforge.net/projects.html>
[31] IEBlog : Completing Access Control support for XDomainRequest ( 版) <http://blogs.msdn.com/ie/archive/2009/01/14/completing-access-control-support-for-xdomainrequest.aspx>
[32] IRC logs: freenode / #whatwg / 20090210 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20090210#l-210>
- [10:44] <annevk5> CORS is done, apart from non-normative details and server requirements and potential feedback from implementors
- [10:44] <Hixie> cool
- [10:45] <hsivonen> annevk5: so CORS will use Origin regardless of how the more general ID goes?
- [10:45] <annevk5> hsivonen, there are three known implementations of CORS that use Origin and will ship soonish
- [10:45] <annevk5> hsivonen, of which one at least has indicated it cannot be possibly changed
- [10:45] <hsivonen> annevk5: ok.
- [10:45] <annevk5> hsivonen, not counting Chrome here
- [10:46] <annevk5> hsivonen, so I guess that although I appreciate the discussion on the HTTP WG mailing list, it's pretty much a done deal
- [10:48] <Hixie> someone should tell the http group
- [10:48] <Hixie> (not it!)
- [10:48] <annevk5> "not it!"?
- [10:49] <annevk5> I'm not sure they care much for reality, but I suppose I can give it try if the discussion surfaces again
- [10:51] <Hixie> "not it" is an idiomatic english expression meaning "i decline to volunteer for the responsibility that has most recently been put on the table"
- [10:51] <annevk5> heh
[33] Cross-Origin Resource Sharing ( 版) <http://www.w3.org/TR/2009/WD-cors-20090317/>
[34] IRC logs: freenode / #whatwg / 20091208 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20091208>
[35] IRC logs: freenode / #whatwg / 20091222 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20091222>
[36] IRC logs: freenode / #whatwg / 20100409 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100409#l-374>
[37] IRC logs: freenode / #whatwg / 20100419 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100419>
[38] IRC logs: freenode / #whatwg / 20100426 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100426>
[39] About using CORS (was: Re: WebFonts WG Kick-off) (Anne van Kesteren 著, 版) <http://lists.w3.org/Archives/Public/public-webfonts-wg/2010Apr/0040.html>
[40] IRC logs: freenode / #whatwg / 20100513 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100513>
[41] [cors] Simplify CORS Headers (ISSUE-89) (Anne van Kesteren 著, 版) <http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/0508.html>
[42] IRC logs: freenode / #whatwg / 20100702 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100702>
[43] Cross-Origin Resource Sharing ( 版) <http://www.w3.org/TR/2010/WD-cors-20100727/>
[44] IRC logs: freenode / #whatwg / 20100803 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20100803#l-508>
[45] cross origin resource sharing (cors) on iphone (xmlhttprequest) - WebDeveloper.com ( ( 版)) <http://www.webdeveloper.com/forum/showthread.php?t=230494>
[48] <https://github.com/whatwg/fetch/commit/05a8acd40d6f65c1a6dc830896cd8366a99d267d>
[50] IANA登録簿には WebApps WG を出典に Provisional、状態「非推奨」
で Access-Control:
HTTPヘッダーが登録されています >>49。