web-dev-qa-db-ja.com

IE8はローカルハードドライブからのJavascriptの実行を拒否します

最近仕事を始めたばかりの問題があり、ネットワーク管理者はグループポリシーで何も変更していないと確信しています。とにかく、ここに問題の詳細な説明があります。

私のマシンはWindows XP SP3で、IE8を使用して参照しています。構成できないMcAffeeアンチウイルスソフトウェアがあります。次のファイルを使用してテストします...

<!DOCTYPE html>
<html>
  <head>
    <title>Javascript Test</title>
  </head>
  <body>
    <script type="text/javascript">
      document.write("<h1>PASS</h1>");
    </script>
    <noscript>
      <h1>FAIL</h1>
    </noscript>
  </body>
</html>

このファイルをC:ドライブから開くと、毎回失敗します。他の場所(ローカル/リモートWebサーバーまたはマップされたネットワークドライブ)で実行すると、問題なく動作します。単にインターネットを閲覧しているときは、WebサイトのJavascriptは問題なく機能します。 C:ドライブから実行されているファイルで失敗するのはonlyです。さらに、部門内の他の2人のプログラマーに、C:ドライブでこのファイルを試してもらいましたが、問題なく動作します。ですから、それはグループポリシーのことではないと思います。

私はC:ドライブから広範なテストを行っているため、これを修正する必要があります。私はそうすることに慣れています。テストのためだけにファイルを別のドライブに移動する習慣をつけたくありません。

私が試したこと:

  • オプション|で「アクティブコンテンツにマイコンピュータでのファイルの実行を許可する」を有効にしました。上級|セキュリティ
  • オプション|で「アクティブスクリプトを許可する」を有効にしました。セキュリティ|カスタムレベル
  • 開発者ツールバーで「スクリプト」が無効としてチェックされていないことを確認しました
  • オプションの信頼済みサイトにローカルホストを追加
  • McAffeeを完全に無効にしました(一時的に、ネットワーク管理者の助けを借りて)
  • テストHTMLページで古いDOCTYPEを使用しました
  • IE8を完全に再インストールしました
  • ランregsvr32JScript.dll上
  • スラミングキーボード

この問題を修正する設定がどこかにあると確信しています。おそらくレジストリにあります。それが開発者ツールバーに関連していても、私は驚かないでしょう。この時点で、私は他にどこを見るべきかわかりません。

誰かが私がこの問題を解決するのを手伝ってくれる?

編集:賞金に関係なく、この問題はまだ進行中です。

4
Josh Stodola

HTMLソースに「MarkoftheWeb」を追加しようとしましたか?

次のようなものを追加するだけです。

<!DOCTYPE html>
<!-- saved from url=(0021)http://www.google.com -->
<html>

Webのマークは、DOCTYPEタグの後、別の行だけで、<html>の直前にあります。

詳細については、 Mark of the Web に関するMSDNドキュメントを参照してください。

4
AlexV

レジストリキーを開く

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\n

ここで、nはゾーンインデックスです。ここで、0 手段 My Computer。このゾーンはインターネットオプションでは利用できません。設定値1400から0Javascriptを有効にします。

4
Bostjan

コンピューターが企業のセキュリティポリシーの対象である場合は、仮想マシンのセットアップを検討できます(たとえば、Virtual BoxまたはMS Virtual PC)Javaスクリプトをテストします。

Microsoftは、VistaまたはXPおよびIE6、7、8)のいずれかで事前にアクティブ化されたさまざまな仮想ハードドライブ(VirtualBoxおよびVPCで動作)を提供しています。- Internet Explorerアプリケーションの互換性VPCイメージは無料で、現在のセットは2010年4月1日まで有効です。

1
Molly7244

この問題を抱えている他の人を知っているので、調査しました。

エラーを再現するために多くの努力をした後、私は犯人を見つけました。

これを読んでください: http://social.answers.Microsoft.com/Forums/en-US/InternetExplorer/thread/2a0b55bf-6807-4f72-b10c-53f958af9b42 および http:// social.technet.Microsoft.com/Forums/en-US/w7itprosecurity/thread/90c3202c-448b-42b7-acf7-dab8dba7b0

何か(ウイルス、またはいくつかのソフトウェアアップデート)がインターネットゾーンを台無しにしているようです。

この問題を解決するために、すべてのレジストリをエクスポートし、エディタ(ultraedit)で「\ InternetSettings\Zones \」を検索して、「{Exadecimal-USER-IDENTITY} ...\Internet Settings\Zones\L」のようなキーを見つけました。 Lは、上付き文字Lのように表示される奇妙な文字です。そのキーを削除すると、javascriptが機能を再開します。

1
kentaromiura

これを回避する唯一の方法は、Internet Ooptionsに移動し、ローカルホストを信頼済みゾーン内に配置することですが、多くの問題が発生する可能性があるため、これはお勧めしません。

ApacheWamp Server (Apacheを使いやすいパッケージに含む)または [〜#〜] iis [〜#〜]のいずれかをインストールすることをお勧めします。 / Web Platform Installer (IISを使いやすいパッケージに含む)。

次に、設定方法に応じて、 http:// computer_name -を介してサイトにアクセスできるか、イントラネットなどの追加のDNSエントリを設定できるはずです。このスクリプトにアクセスする必要のあるコンピューターが複数ある場合は、更新やその他すべてが非常に簡単になります。

編集-

インターネットオプションでこの設定を確認してください-

alt text

0
William Hilsum

[インターネットオプション]/[セキュリティ]タブ/ [インターネット]/[カスタム]ボタンに移動し、[その他]セクションまで下にスクロールすると、IE8のJavaScriptエンジンを制御するいくつかのエントリが見つかります。

あなたはあなたのコンピュータ上のそれらをこれが機能するコンピュータ上のこれらと比較するかもしれません。

これで問題が見つからない場合は、次の方法でも同じことができます。
gpedit.msc /ローカルコンピューターポリシー/コンピューター構成/管理用テンプレート/ Windowsコンポーネント/ InternetExplorer。
ここで[InternetExplorer]を右クリックし、すべての設定をテキストファイルにエクスポートすると、2台のコンピューター間で設定を比較するのに役立ちます。

0
harrymc

これが役立つかもしれない2つの考えです:

名前をtest.htaに変更します。これにより、単なるHTMLではなくHTMLアプリケーションとして起動されます。 HEAD要素内にいくつかの属性を持つ<HTA:APPLICATION>を追加する必要があるかもしれませんが、それはチャンピオンのように機能するはずです。HTAの詳細については、こちらをご覧ください: http ://msdn.Microsoft.com/en-us/library/ms536496.aspx

ローカルWebサーバーを使用して、ファイルシステムの問題を回避できますか? Visual Web Developer Expressをインストールする場合は、テストに使用できるWebサーバーが付属しています。または、いつでもIIS(WinXP Proの場合)、Apacheなどをインストールできます。

0
Goyuix

次の場所にあるMicrosoftツールを使用して、IE8のインストールを確認することができます。
Internet Explorer 8のインストールの問題を解決する方法

この記事には、IE8の一般的なトラブルシューティングを行うFix Itボタンが含まれています。

私は引用します:

Internet Explorer 8のインストールに関する問題は、さまざまな問題が原因で発生する可能性があります。そのため、問題の解決を試みるために使用できるトラブルシューティング方法がいくつかあります。

この問題を自動的に修正するには、[この問題を修正する]リンクをクリックします。次に、[ファイルのダウンロード]ダイアログボックスで[実行]をクリックし、このウィザードの手順に従います。

これで問題がすぐに解決した場合でも、再起動してもう一度確認する必要があります。問題が再発した場合、これはおそらくGPOの問題です。

さらに、私は適用されるかもしれない興味深いスレッドを見つけました:
IE8の更新後-すべてのローカル実行に対するオープンファイルのセキュリティ警告

私は引用します:

レジストリ、インターネット、そしてアルコール(冗談ですが)で多くの時間を費やした後、私は問題の原因を見つけたと思います。 :)特定のレジストリキーの値を前後に切り替えることで問題を再現できるので、それが原因であると確信しています。奇妙な? :) OK、ここに行きます:

問題の原因となる次のレジストリキーが特定されています:[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\0]

KB182569( http://support.Microsoft.com/kb/182569 )によると、このキーの原因は次のとおりです。「その他:アプリケーションと安全でないファイルの起動」。

同じ記事でも次のように指定されています。「注特に明記されていない限り、各DWORD値は0、1、または3に等しい。通常、0に設定すると特定のアクションが許可され、1に設定するとプロンプトが表示されます。 3を設定すると、特定のアクションが禁止されます。」

「1806」のdword値を「0」に設定し、タスクマネージャーを使用して「Explorer」タスクを強制終了して再開すると、問題が解消されていることがわかりました。値を「1」に戻し、エクスプローラーを強制終了/再起動した場合、問題は再発しました。

ここで、適用されているGPOをシステムで検索し始め、この値を「1」に設定しているGPOを見つけました。これは、ユーザーにプロンプ​​トを表示することを意味します。 GPO [ユーザー構成/管理用テンプレート/ Windowsコンポーネント/ InternetExplorer /インターネットコントロールパネル/セキュリティページ/ローカルマシンゾーンのロックダウン/プログラムと安全でないファイルの起動]の下に設定されます。セクション。

私が言ったように、これは私の問題の原因であり、私は今それを修正する方法を知っています。しかし、私にとって奇妙なのは、同じGPOがIE7マシンに適用され、問題が表面化しないことです。GPOの説明によると、この機能はIE7以降サポートされていました。

プログラムと安全でないファイルの起動設定パス:

ユーザー構成/管理用テンプレート/ Windowsコンポーネント/ InternetExplorer/Internetコントロールパネル/セキュリティページ/ロックダウンされたローカルマシンゾーンサポート対象:少なくともInternet Explorer 7.0説明このポリシー設定は、「ファイルを開く-セキュリティ警告」プロンプトを表示するかどうかを制御します。実行可能ファイルまたはその他の安全でないファイルを起動するとき。

たとえば、ユーザーがWindowsエクスプローラーを使用してイントラネットファイル共有から実行可能ファイルを起動した場合、この設定は、ファイルを開く前にプロンプ​​トを表示するかどうかを制御します。

このポリシー設定を有効にし、ドロップダウンボックスが[有効]に設定されている場合、ファイルはセキュリティプロンプトなしで開きます。ドロップダウンボックスが[プロンプト]に設定されている場合、ファイルを開く前にセキュリティプロンプトが表示されます。

このポリシー設定を無効にすると、ファイルは開かれません。

このポリシー設定を構成しない場合、ユーザーはプロンプトの動作を構成できます。デフォルトでは、実行は制限付きゾーンでブロックされ、イントラネットおよびローカルコンピューターゾーンで有効になり、インターネットおよび信頼済みゾーンでプロンプトに設定されます。

そのため、機能の説明と私が経験したことに基づいて、IE7はこの機能を誤って処理し、IE8は最終的に正しく処理するという結論に達しました。これは、IE8への更新によって機能が表示された理由を説明します。

0
harrymc

DCOMの設定を編集してみます

[実行]に移動してdcomcnfgと入力し、[コンポーネントサービス]でコンピューターを右クリックして[プロパティ]に移動します。次に、[デフォルトのプロパティ]に移動し、このコンピューターでCOMインターネットサービスを有効にします。また、デフォルトの認証レベルが接続に設定され、偽装レベルが識別に設定されていることを確認してください。

0
jburke

これは役に立たないと思いますが、ローカルスクリプトの実行を許可するためにレジストリキーを確認しましたか?

HKCU \ソフトウェア\ Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN

右側のウィンドウで、iexplore.exeという名前の新しいREG_DWORDを作成し、0に設定します。

値:

0 - Allows a Web page to run active content in your computer
1 - Disallows a Web page from running active content in your computer

このドキュメントには、他の関連するレジストリキーが含まれています。

http://msdn.Microsoft.com/en-us/library/ms537183(VS.85).aspx#registry

0
davidcl

信頼済みサイトゾーンにローカルドライブを追加できるかどうかわかりません。

ゾーンへの制限を確認し、カスタムレベルに設定するのが最適です。スクリプトとActiveXに関連するすべてのオプションを有効にします(プリセット設定の)最低レベルでも適用される制限があるためです。 。

IE6でも同様の問題が発生しましたが、デフォルトゾーン(インターネット)の制限をすべて削除することで修正できました。どういうわけかファイルを信頼済みサイトに追加できた場合は、ゾーンも「カスタムレベル」に設定する必要があります。

確実に有効にする必要があるのは、この設定だと思います。

スクリプト作成に安全とマークされていないActiveXコントロールを初期化してスクリプト化します。-「安全でないとマークされた」と「マークされていない」の両方に影響します

0
venimus