0

外出先でスクリプトをロードするアプリケーションを構築しています。

var newScript=document.createElement("script");
newScript.src="script.js";
document.head.appendChild(newScript);

スクリプトは同じドメインにあるため、script タグを使用するのではなく、ajax + eval を使用することを検討しています。これにより、柔軟性が向上します (特に、他のスクリプトと同期するため)。両方のオプションは同等ですか、または eval を使用する場合に追加のリスクがありますか?

4

2 に答える 2

0

の唯一の正当な使用法の 1 つは、evalAJAX 呼び出しが JavaScript を返す場合です。これにより、追加の柔軟性が得られますが。特定のアプリについてはわかりませんが、主な懸念事項は次のとおりです。

  • ユーザーは、AJAX を介して必要なデータを送信できます。サーバー側のコードがクリーンであることを確認してください。
  • AJAXing スクリプトは、ブラウザーがスクリプトをキャッシュできないことを意味します。これにより、ユーザー エクスペリエンスが遅くなります。
于 2012-12-05T18:48:01.650 に答える
0

リスクに関しては、どちらも同等です。

どちらの方法でも、ダウンロードしたスクリプトを盲目的に (チェックせずに) 実行します。唯一の違いは、ajax を使用して他のドメインからスクリプトを実行できないことです。

一方、スクリプトを評価する前にテキストとしてダウンロードすることにより、既知の悪意のある攻撃のチェック、lint などのテキスト処理を実行する機会が得られます。 ajax+evalによる実行環境の制限。しかし、何が悪意があり、何が良性であるかを判断することは容易ではありません。

于 2012-12-05T18:57:57.873 に答える