1181037330 Internet Explorerのデフォルト設定では、ローカルに置かれたJavaScriptを実行しようとすると、

「セキュリティ保護のため、コンピュータにアクセスできるアクティブ コンテンツは表示されないよう、Internet Explorerで制限されています。オプションを表示するには、ここをクリックしてください...」
と表示されます。

なぜ、ローカルに置かれたファイルにのみこのような警告が表示されるのでしょうか?
私の感覚的には、ネット上に存在するJavaScriptの方が危険なものが多いと思うのですが……。

ローカルにある場合のみ、特殊な操作(ローカルのファイル操作とか?)ができてしまう、とかでしょうか?

詳しい方、教えてください。

回答の条件
  • 1人3回まで
  • 登録:2007/06/05 18:55:32
  • 終了:2007/06/10 18:43:51

ベストアンサー

id:jack_sonic No.3

じゃっくそにっく回答回数123ベストアンサー獲得回数252007/06/06 03:02:43

ポイント50pt

1の回答者です。もう少し詳しくご説明いたします。

閲覧者のローカルディスクのファイルに書き込みを行う機能は、

JavaScriptの言語自体がはじめから持つ機能ではなく、

JavaScriptを経由して呼び出せる”ActiveXコントロール”の機能」です。

ローカルの場合だけ、質問の画像にあるような

アクティブコンテンツ(ActiveXコントロールなど)の警告表示が出るのは、

セキュリティレベルの既定の設定」の問題が関与しています。

[インターネットオプション]の、[セキュリティ] 設定において、

「ActiveXコントロールに対して自動的にダイアログを表示」

という設定項目が、

「ローカルイントラネット」ゾーンでは既定が「有効」であり、

「インターネット」ゾーンでは既定が「無効」だからです。

既定のActiveX警告設定の違い

[f:id:jack_sonic:20070606024021j:image]

[f:id:jack_sonic:20070606024023j:image]


なぜかというと、既定の設定では

「ローカルイントラネット]ゾーンは、

「インターネットゾーン」よりも、

、セキュリティレベルが甘いからです。

インターネットゾーンが「中高」に対して、

ローカルは「中低」が既定など。

[f:id:jack_sonic:20070606024022j:image]

[f:id:jack_sonic:20070606024024j:image]



しかし注意しなければならないことは、

「ローカルにある場合のみ」ではなく

「ブラウザの(特にActiveX関連の)セキュリティレベルが低く設定されている」場合に危険性があるということです。

セキュリティレベルは変更できるため、

たとえ"インターネット"ゾーンでも、

ActiveXのセキュリティレベルを変更し、

例えば、レベルのカスタマイズの設定で

デフォルトで無効になっている、この

[f:id:jack_sonic:20070606024610j:image]

「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」

を”有効”にしたり

するなどして、

全体として安全が保証できないActiveXの実行が許されているような設定にしていれば、

ローカルでないインターネット上のJavaScriptからでも、

ActiveXを使わせてローカルファイルにアクセスすることが可能です。

正直、こちらの設定のほうが危険といえるでしょう。


つまり、

「ゾーンごとのActiveX実行に関するセキュリティ設定」が

一番のポイントであり、

危険かどうかは設定次第であり、どちらでも危険になりえます。

既定(はじめの)のセキュリティレベルが違うというだけとも

いえるかもしれません。

id:hina1981

詳しい解説をありがとうございます!

ローカルとインターネットで設定が別々になっているというのを始めて知りました。ローカルとインターネットで、警告が出る・出ないというのは、ここの設定方法次第なのですね。


私が、ActiveXの理解をあまりしていないので、バクゼンとした言い方しかできないのですが、

ローカルの場合には、JavaScriptでのActiveXの呼び出しに関して、多くの権限が与えられているので、警告が出る、と言う理解でよいのでしょうか?

もう少し、JavaScriptとActiveXの勉強をしてみたいと思います。

2007/06/07 12:09:51

その他の回答(2件)

id:jack_sonic No.1

じゃっくそにっく回答回数123ベストアンサー獲得回数252007/06/05 19:13:10

ポイント20pt

こんにちは

ローカルにある場合のみ、特殊な操作(ローカルのファイル操作とか?)ができてしまう、とかでしょうか?

そうですね。

たとえば、ローカルのJavaScriptの実行法によっては

WSH,ローカルのドライブ・フォルダ・ファイルを操作できてしまう

"FileSystemObject"などが使えて、

セキュリティ上の危険はあります。

id:hina1981

ありがとうございます!

「FileSystemObject + JavaScript」

で検索して出てきたプログラムを実行してみました。

確かに、ローカルでのファイル操作ができてしまいますね!

FileSystemObjectについて、もう少し勉強してみます。

2007/06/06 10:51:31
id:susie-t No.2

susie-t回答回数99ベストアンサー獲得回数182007/06/06 00:14:11

ポイント30pt

あとは、Ajaxで例えば"test.txt"を読み込むスクリプトの場合、これがどこのファイルを意味するかという問題があると思います。c:\test.htmならc:\test.txtになりますので・・・。

id:hina1981

ありがとうございます!

1の質問の検証の際に、検索で出てきたsusie-t様のサイトを参考にさせていただきました。

他にもtheater.js等を見させていただき、JavaScriptが持っている大きな可能性を感じました。


ローカルで動くスクリプト言語ということで、今まであまり重視してこなかったのですが、JavaScriptって、奥が深いのですね!!

Ajaxに関しては、まだ勉強途中なので、もう少し勉強して検証してみたいと思います。

2007/06/06 10:59:06
id:jack_sonic No.3

じゃっくそにっく回答回数123ベストアンサー獲得回数252007/06/06 03:02:43ここでベストアンサー

ポイント50pt

1の回答者です。もう少し詳しくご説明いたします。

閲覧者のローカルディスクのファイルに書き込みを行う機能は、

JavaScriptの言語自体がはじめから持つ機能ではなく、

JavaScriptを経由して呼び出せる”ActiveXコントロール”の機能」です。

ローカルの場合だけ、質問の画像にあるような

アクティブコンテンツ(ActiveXコントロールなど)の警告表示が出るのは、

セキュリティレベルの既定の設定」の問題が関与しています。

[インターネットオプション]の、[セキュリティ] 設定において、

「ActiveXコントロールに対して自動的にダイアログを表示」

という設定項目が、

「ローカルイントラネット」ゾーンでは既定が「有効」であり、

「インターネット」ゾーンでは既定が「無効」だからです。

既定のActiveX警告設定の違い

[f:id:jack_sonic:20070606024021j:image]

[f:id:jack_sonic:20070606024023j:image]


なぜかというと、既定の設定では

「ローカルイントラネット]ゾーンは、

「インターネットゾーン」よりも、

、セキュリティレベルが甘いからです。

インターネットゾーンが「中高」に対して、

ローカルは「中低」が既定など。

[f:id:jack_sonic:20070606024022j:image]

[f:id:jack_sonic:20070606024024j:image]



しかし注意しなければならないことは、

「ローカルにある場合のみ」ではなく

「ブラウザの(特にActiveX関連の)セキュリティレベルが低く設定されている」場合に危険性があるということです。

セキュリティレベルは変更できるため、

たとえ"インターネット"ゾーンでも、

ActiveXのセキュリティレベルを変更し、

例えば、レベルのカスタマイズの設定で

デフォルトで無効になっている、この

[f:id:jack_sonic:20070606024610j:image]

「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」

を”有効”にしたり

するなどして、

全体として安全が保証できないActiveXの実行が許されているような設定にしていれば、

ローカルでないインターネット上のJavaScriptからでも、

ActiveXを使わせてローカルファイルにアクセスすることが可能です。

正直、こちらの設定のほうが危険といえるでしょう。


つまり、

「ゾーンごとのActiveX実行に関するセキュリティ設定」が

一番のポイントであり、

危険かどうかは設定次第であり、どちらでも危険になりえます。

既定(はじめの)のセキュリティレベルが違うというだけとも

いえるかもしれません。

id:hina1981

詳しい解説をありがとうございます!

ローカルとインターネットで設定が別々になっているというのを始めて知りました。ローカルとインターネットで、警告が出る・出ないというのは、ここの設定方法次第なのですね。


私が、ActiveXの理解をあまりしていないので、バクゼンとした言い方しかできないのですが、

ローカルの場合には、JavaScriptでのActiveXの呼び出しに関して、多くの権限が与えられているので、警告が出る、と言う理解でよいのでしょうか?

もう少し、JavaScriptとActiveXの勉強をしてみたいと思います。

2007/06/07 12:09:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません