- ベストアンサー
HTMLで別PCのフォルダを開く
例えばネットワーク上に”192.168.100.250”というPCがあるとします。 このPCはフォルダウィンドウでフォルダ内を閲覧出来る場合、 別のサーバーのHTMLファイルから、 このフォルダを開く事は出来ますか? 以下のコードを追加して、testをクリックしても何も起こりません。。。 <a href="file:\\192.168.100.250\test">test</a> どなたかお分かりになる方教えてください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
[ANo.7] の続きね。 Firefox を例にするね。 ■ ウェブブラウザのセキュリティ第1段階 1) Firefox でロケーションバーに "file:///c:/" を入力すると、『C:\』のフォルダの一覧が表示される。他のフォルダを入力すれば、同じように、そのフォルダの一覧が表示される。 2) 質問者さんは、悪意のあるウェブページとは知らずに、"http://example.org/akuinoaru.html" をダウンロードして、デスクトップに保存したとする。 その HTML の内容は↓これ。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>Akuinoaru JavaScript Sample</title> <script type="text/javascript" src="http://example.org/akuinoaru.js"></script> </head> <body> <h1>Akuinoaru JavaScript Sample</h1> <div> <iframe id="iframe" width="100%" height="600" src="."></iframe> </div> </body> </html> 3) 質問者さんは、保存した HTML を Firefox で開くとする。 4) すると、デスクトップにあるファイルの一覧が表示される。 5) 『4)』とほぼ同時に "http://example.org/akuinoaru.js" が実行される。 6) akuinoaru.js は、表示されたフォルダの中にあるファイルを、 "http://example.org/akuinoaru.php" へ全て送信するという JavaScript だとする。 ということで、質問者さんの PC の中のファイルが、攻撃者のサーバに送信される。 つまり、『信頼できない HTML ファイルをダウンロードして、ウェブブラウザで開くのはすごく危険』ということ。 ■ ウェブブラウザのセキュリティ第2段階 1) ウェブブラウザは、PC にウェブページのキャッシュを持つ。 つまり、自分でダウンロードしなくても、もともと HTML ファイルはダウンロードされているということ。 2) ここで、"http://example.org/akuinoaru.html" は "file:///ウェブページのキャッシュフォルダ/キャッシュファイル" へリンクを張ってあったとする(※)。 通常、このリンクはウェブブラウザによってセキュリティー上無効にされているけれど、これが有効だったとする。 3) 質問者さんは、上のページのリンクをクリックしたとする。 4) 以下、『ウェブブラウザのセキュリティ第1段階』の 『4)』と同じ。 今回は、リンクをクリックする想定をしたけど、実際はクリックしなくても、キャッシュファイルを表示させることができるから、悪意のあるページにアクセスしたら、すぐに、質問者さんの PC の中に保存されているファイルは、攻撃者のサーバに送信されてしまう。 このようなことが起こらないように、http://xxxxxx から file:/// へのリンクは無効にされている。 という説明で大丈夫かな? ※2) 実際には、キャッシュファイルのパスは固定じゃないから、JavaScript でがりがり生成して何回もトライしてキャッシュファイルのパスを見つける必要がある。でも危険なことには違いはない。
その他の回答 (7)
- dscripty
- ベストアンサー率51% (166/325)
[ANo.5]の補足に対する回答ね。 「アクセス先にアクセスする時はパスワードとIDが必要ですが、 これはフォルダウィンドウに移動してから認証ウィンドウにより対応する事で 行えるんじゃないでしょうか?」 『行える』『行えない』の話ではなくて、ウェブブラウザのセキュリティーの欠陥になるからウェブブラウザは『させない』ように作られている、ということ。 ネットワークファイル共有サービスのようなイントラネットのセキュリティー技術と、インターネットに対するウェブブラウザのセキュリティー技術を一緒に考えるのは大きな間違いだよ? [ANo.5] の回答とは逆に、 file:///other-server/some-file.html をウェブブラウザで開いたとして(※) ※ メニューバー > [ファイル(F)] > [開く(O)...] そのウェブページのなかに、http://some-server/some-page.html へのリンクがあったとすると、そのリンクは有効で、リンクをクリックすれば、http://some-server/some-page.html へ移動するよ。 このことを理解したければ、ウェブページのセキュリティーについて一から学んでいけばいいとおもう。 そこまでするつもりがないなら、このまま納得するか、他にもっと上手く説明してくれる回答を待つしかないかな?
- ORUKA1951
- ベストアンサー率45% (5062/11036)
>教えて頂いた内容で行ってみたのですが、無理でした。。。。 何が無理だったのですか? ファイルメニューから開けないのでしたら、同一のワークグループに所属していない、共有フォルダーに入ってないとかでしょう。 どのパソコンにも、他のパソコンからアクセスして欲しくないデータがほとんどです。(立場を逆にすると解るかと・・お父さんのパソコンのインターネット一時ファイルの履歴とか(^^)・・・ なぜ、ファイルサーバーやHTTPサーバーでイントラネットを作らないのですか?
- dscripty
- ベストアンサー率51% (166/325)
別のサーバのウェブページから (たとえば http://some-server/some-page.html) ネットワークフォルダも含めて、ローカルフォルダへのリンクは 無効だよ? (例えば file:///other-server/some-file.txt) これが、できないことは、セキュリティー上とても重要なことなんだ。 セキュリティーについての深い知識があるなら別だけど、 セキュリティーを低く設定するのは、おすすめできないよ。
補足
アクセス先にアクセスする時はパスワードとIDが必要ですが、 これはフォルダウィンドウに移動してから認証ウィンドウにより対応する事で 行えるんじゃないでしょうか?
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
Windowsならネットワークドライブを設定して、 href="file:///z\test" としてください。 ネット(イントラネット、インターネット)とローカルのアクセス権が違うと、セキュリティーエラーとなりアクセスできません。 その場合はセキュリティーを落としてアクセスできるように設定し直してください。(弊害については自己責任でお願いします。) 192.168.100.250にウェブサーバーがあるなら、 href="http://192.168.100.250/test" で行けます。
補足
>Windowsならネットワークドライブを設定して、 >href="file:///z\test" >としてください。 上記でもダメでした。。 >ネット(イントラネット、インターネット)とローカルのアクセス権が違うと、セキュリティーエラーとなりアクセスできません。 フォルダウィンドウでのアクセス可能と上記のアクセス可能はイコールでないのですか?
- ORUKA1951
- ベストアンサー率45% (5062/11036)
そのブラウザの「ファイル」→「開く」で、ネットワーク上の該当するコンピューターを見つけてそのファイルを開いてください。 そのときに「場所欄」に表示されるアドレスを参考にしてください。 また、共有ホルダーに移動してみてください。 なお、本来は専用のコンピューターにファイルサーバーかHTTPサーバーをインストールして、それを経由して開くのが本来の方法です。私は古いパソコンにFreeBSDをインストールしてそれにSUMBA、apacheを入れています。
補足
>そのブラウザの「ファイル」→「開く」で、ネットワーク上の該当するコンピュータ>ーを見つけてそのファイルを開いてください。 > そのときに「場所欄」に表示されるアドレスを参考にしてください。 教えて頂いた内容で行ってみたのですが、無理でした。。。。 <a href="\\192.168.100.250\test\test.html">test</a> <a href="192.168.100.250\test\test.html">test</a> <a href="file:\\192.168.100.250\test\test.html">test</a> この方法だと無理なのでしょうか?
- nicorus
- ベストアンサー率70% (12/17)
質問者さん> No1 さんへの補足ですが、セキュリティ上の問題でしたら閲覧権限を与えている場合は閲覧できても良いのではと思ってしまいます。(実際ブラウザにIEを使用した場合、質問者さんのご希望の動きはできるのですから) 問題はIE以外のブラウザで何故できないのかでしょうか? ひとつ言えることはIEは他のブラウザに比べてExplorer.exeとの互換性が高いからIEからアクセスしてもフォルダとして開くことができるのではと思っています。 また、IE以外のブラウザで任意のフォルダを開きたい場合「フォルダ共有」ではなく「仮想ディレクトリ」として作成すればhttpベースですがフォルダを見ることは可能かと思います。 参考サイト:http://keicode.com/iis/iis-create-virtual-directory.php 以上、No1さんの答えで終わるのが残念だったので補足させていただきました。
- kosukejlampnet
- ベストアンサー率44% (126/282)
できません。 仮にできたとすると、悪いことができてしまいますよね?
補足
出来ない原因があるのでしょうか? 同一ネットワーク内の参照でを行うだけなら、 特に悪い事にはならないと思いますが。。。
補足
クリックしてもリンク出来ないです。 >ファイルメニューから開けないのでしたら、同一のワークグループに所属してい>ない、共有フォルダーに入ってないとかでしょう。 フォルダウィンドウでアクセスできるなら 上記の内容ではないって事になりますよね、、? >なぜ、ファイルサーバーやHTTPサーバーでイントラネットを作らないのですか? アクセス先の設定を変えたくないのです。