<html xmlns="http://www.w3.org/1999/xhtml" a0:Name="SuikaWiki" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:Version="0.9"><head></head><body><p><a0:anchor-end a0:anchor="1">[1]</a0:anchor-end> 【<a0:anchor>M$URI</a0:anchor>】 <a0:anchor>Windoze</a0:anchor> <a0:anchor>explorer</a0:anchor> の機能 (特殊フォルダなど) の <a0:anchor>URI</a0:anchor> <a0:anchor>scheme</a0:anchor>。</p><p><a0:anchor-end a0:anchor="4">[4]</a0:anchor-end><table><tbody><tr><td><code class="URI">shell:Administrative Tools</code></td><td><code><a0:anchor>管理ツール</a0:anchor></code>フォルダ (<a0:anchor>スタートメニュー</a0:anchor>)</td></tr><tr><td><code class="URI">shell:AppData</code></td><td><a0:anchor>ApplicationData</a0:anchor> フォルダ</td></tr><tr><td><code class="URI">shell:Common Administrative Tools</code></td><td><code>管理ツール</code>・フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:Common AppData</code></td><td>Application Data フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:Common Desktop</code></td><td><a0:anchor>デスクトップ</a0:anchor>・フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:Common Documents</code></td><td></td></tr><tr><td><code class="URI">shell:Common Favorites</code></td><td><a0:anchor>お気に入り</a0:anchor> (全利用者)</td></tr><tr><td><code class="URI">shell:Common Programs</code></td><td><a0:anchor>プログラム</a0:anchor>・フォルダ (スタートメニュー・全利用者)</td></tr><tr><td><code class="URI">shell:Common Startup</code></td><td><a0:anchor>スタートアップ</a0:anchor>・フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:Common Templates</code></td><td>雛形 (<a0:anchor>ShellNew</a0:anchor>) フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:CommonProgramFiles</code></td><td><code class="file">\Program Files\Common Files</code></td></tr><tr><td><code class="URI">shell:ConnectionsFolder</code></td><td><a0:anchor>ネットワーク接続</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:ControlPanelFolder</code></td><td><a0:anchor>コントロールパネル</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:Cookies</code></td><td><a0:anchor>Cookie</a0:anchor> 保存フォルダ</td></tr><tr><td><code class="URI">shell:DesktopFolder</code></td><td><a0:anchor>デスクトップ</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:DriveFolder</code></td><td><a0:anchor>マイコンピュータ</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:Favorites</code></td><td><a0:anchor>お気に入り</a0:anchor>フォルダ</td></tr><tr><td><code class="URI">shell:Fonts</code></td><td><a0:anchor>フォント</a0:anchor>・フォルダ</td></tr><tr><td><code class="URI">shell:History</code></td><td><a0:anchor>IE</a0:anchor> の<a0:anchor>履歴</a0:anchor>保存フォルダ</td></tr><tr><td><code class="URI">shell:InternetFolder</code></td><td>IE</td></tr><tr><td><code class="URI">shell:Local AppData</code></td><td><a0:anchor>LocalSettings</a0:anchor> の Application Data</td></tr><tr><td><code class="URI">shell:My Pictures</code></td><td><a0:anchor>マイピクチャ</a0:anchor>・フォルダ</td></tr><tr><td><code class="URI">shell:NetHood</code></td><td><a0:anchor>NetHood</a0:anchor> フォルダ</td></tr><tr><td><code class="URI">shell:NetworkFolder</code></td><td><a0:anchor>マイネットワーク</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:Personal</code></td><td><a0:anchor>マイドキュメント</a0:anchor>・フォルダ</td></tr><tr><td><code class="URI">shell:PrintHood</code></td><td><a0:anchor>PrintHood</a0:anchor> フォルダ</td></tr><tr><td><code class="URI">shell:PrintersFolder</code></td><td><a0:anchor>プリンタとFAX</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:Profile</code></td><td>個人設定フォルダ</td></tr><tr><td><code class="URI">shell:ProgramFiles</code></td><td><a0:anchor>ProgramFiles</a0:anchor> フォルダ</td></tr><tr><td><code class="URI">shell:Programs</code></td><td>プログラム・フォルダ (スタートメニュー)</td></tr><tr><td><code class="URI">shell:Recent</code></td><td><a0:anchor>最近使ったファイル</a0:anchor>履歴フォルダ</td></tr><tr><td><code class="URI">shell:RecycleBinFolder</code></td><td><a0:anchor>ごみ箱</a0:anchor> (仮想) フォルダ</td></tr><tr><td><code class="URI">shell:SendTo</code></td><td><a0:anchor>送る</a0:anchor>フォルダ</td></tr><tr><td><code class="URI">shell:Startup</code></td><td><a0:anchor>スタートアップ</a0:anchor>・フォルダ (全利用者)</td></tr><tr><td><code class="URI">shell:System</code></td><td>システム・フォルダ (<a0:anchor>System32</a0:anchor>)</td></tr><tr><td><code class="URI">shell:SystemX86</code></td><td>システム・フォルダ (System32)</td></tr><tr><td><code class="URI">shell:Templates</code></td><td>雛形 (ShellNew) フォルダ</td></tr><tr><td><code class="URI">shell:Windows</code></td><td>Windows フォルダ</td></tr></tbody></table></p><p><a0:anchor-end a0:anchor="2">[2]</a0:anchor-end> <code class="URI">shell:ConnectionsFolder</code>
は <a0:anchor>Win2k</a0:anchor> で実装が確認されています。その他は未確認。
<a0:weak>(Win2k をお持ちの方、確かめてみてください。)</a0:weak></p><p>表のうち、 <code class="URI">shell:Common Documents</code> 以外はすべて <a0:anchor>WinXP</a0:anchor>
(+ <a0:anchor>WinIE6</a0:anchor>) で確認しました。</p><p><code class="URI">shell:Common Documents</code> は <a0:anchor-internal a0:anchor="3">&gt;&gt;3</a0:anchor-internal> に載っているのですが、
Win2k では本当にあったのでしょうか? (WinXP でも確認したと書かれていますが。。。)</p><p><a0:anchor-end a0:anchor="3">[3]</a0:anchor-end> <em>【コラム】Windows2000スマートチューニング 第57回 執筆=阿久津良和 「Shell:」を使って特殊フォルダを一発で開く(MYCOM PC WEB - Column Square)</em> <a0:anchor-external a0:resParameter="http://web.archive.org/web/20030413155626/http://pcweb.mycom.co.jp/column/win2k/win2k057.html" a0:resScheme="URI">http://web.archive.org/web/20030413155626/http://pcweb.mycom.co.jp/column/win2k/win2k057.html</a0:anchor-external></p><p><a0:anchor-end a0:anchor="5">[5]</a0:anchor-end> WinXP (+ WinIE6) で確認した限りでは、大文字・小文字は区別されません。
<a0:anchor>URI符号化</a0:anchor>は使えません。 (<a0:anchor>間隔</a0:anchor>が使われているのに!)
間隔の有無が無視されないかなとちょっと期待してみましたが、無駄でした。
間隔は正確に表の通りでないといけません。</p><p>もしかしたら文字列と <a0:anchor>CLSID</a0:anchor> の対応とかが<a0:anchor>レジストリ</a0:anchor>のどっかにあるんじゃないかなあという気もしていますけど、探す気力がないです。。。</p><p><a0:anchor-end a0:anchor="6">[6]</a0:anchor-end> <a0:anchor>WinMe</a0:anchor> でも使えるそうです。
<a0:anchor>WinIE</a0:anchor> 5.0 or 5.5 辺りで実装されたのかな?
<a0:anchor>Win98</a0:anchor> ではどうなのだろう?</p><p><a0:anchor-end a0:anchor="7">[7]</a0:anchor-end>
なんと、 <samp class="URI">shell:windows\web\tip.htm</samp> のようにすると subfolder / file を指せるようです。 (<code class="URI">\</code> は <code class="URI">/</code> では不可。 <code class="URI">..</code> などを含めるのも不可。)
不存在ファイルを指定すると、 WinIE 6 ではエラーが出ますが、 <a0:anchor>Mozilla</a0:anchor> 類では無限に開こうとし続ける不具合があるようです。</p><p><em>Bug 250180 - Shell: protocol allows access to local files and can lead to a DOS</em> <a0:anchor-external a0:resParameter="http://bugzilla.mozilla.org/show_bug.cgi?id=250180" a0:resScheme="URI">http://bugzilla.mozilla.org/show_bug.cgi?id=250180</a0:anchor-external></p><p>この URI scheme の機能が一般のウェブ頁から <code class="HTMLe"><a0:anchor>a</a0:anchor></code> や <code class="HTMLe"><a0:anchor>iframe</a0:anchor></code> で使えてしまうのは危険で、脆弱性とみなされるようです。
(実際<a0:anchor>ブラクラ</a0:anchor>だから仕方がない。)</p><p><em>shell: プロトコルのセキュリティ問題について Mozilla ユーザが知っておくべきこと</em> <a0:anchor-external a0:resParameter="http://jt.mozilla.gr.jp/security/shell.html" a0:resScheme="URI">http://jt.mozilla.gr.jp/security/shell.html</a0:anchor-external>
(<a0:anchor>名無しさん</a0:anchor> <a0:weak>2004-07-10 01:39:28 +00:00</a0:weak>)</p><p><a0:anchor-end a0:anchor="8">[8]</a0:anchor-end>
<a0:anchor-internal a0:anchor="7">&gt;&gt;7</a0:anchor-internal> Mozilla は Windows の <code class="URI">shell:</code> URL handler に丸投げしているだけでしょうから、同様のことをしているすべてのプログラム (ブラウザに限らず) が多かれ少なかれ同じ問題を抱えているといえるはずです。 (Windows の URL handler 登録機能はこういう安全上の点でやばい。)
<code class="URI">shell:</code> の場合は拡張子の関連付けによって任意のプログラムを実行できますし、 Bugzilla に引用された Full-Disclosure の記事によれば buffer overflow 
も起こり得るそうで。
(<a0:anchor>名無しさん</a0:anchor> <a0:weak>2004-07-10 01:46:27 +00:00</a0:weak>)</p></body></html>