1. ホーム
  2. javascript

[解決済み] なぜJavaScriptのeval関数を使うとダメなのか?

2022-03-18 05:08:48

質問

eval関数は、強力かつ簡単にコードを動的に生成する方法ですが、その注意点は何でしょうか?

どのように解決するのですか?

  1. の不適切な使用 評価 は インジェクション攻撃

  2. デバッギング より困難である可能性があります (行番号がないなど)

  3. 評価されたコードの実行速度が遅くなる(評価されたコードをコンパイルしたりキャッシュしたりする機会がない)

Edit: @Jeff Waldenがコメントで指摘しているように、#3は2008年当時と比べ、現在ではあまり当てはまりません。しかし、コンパイルされたスクリプトのキャッシュは起こるかもしれませんが、それは何も変更せずに繰り返し評価されるスクリプトに限られるでしょう。より可能性の高いシナリオは、毎回わずかな変更が加えられているスクリプトを評価する場合であり、そのような場合はキャッシュされない可能性があります。このような場合、一部の評価済みコードは実行速度が遅くなると考えてください。