JS の eval() 関数は悪いと誰もが言います。
実際に私はこのように使用しています:
eval("document.getElementById('toto').value");
私の意見では、ユーザーが「toto」要素で悪意のある入力を送信している場合でも、これは安全です。
確認していただけますか?(アプリケーションに脆弱性を残したくありません)。
JS の eval() 関数は悪いと誰もが言います。
実際に私はこのように使用しています:
eval("document.getElementById('toto').value");
私の意見では、ユーザーが「toto」要素で悪意のある入力を送信している場合でも、これは安全です。
確認していただけますか?(アプリケーションに脆弱性を残したくありません)。
まず、ユハナがコメントで指摘しているように、これは次のとおりです。
eval("document.getElementById('toto').value");
は の不必要な使用にすぎませeval
ん。
document.getElementById('toto').value;
さて、引用符なしで:
eval(document.getElementById('toto').value);
... 「toto」input
を使用して、コードが何であれ評価します。id
それがあなたの意図したものであると仮定します:
誰かが入力したコードを実行するのは少し奇妙に思えinput
ますが、3 つのことで問題がなければ問題ありません。3つのことは次のとおりです。
eval
その入力にあるコードを実行します。ユーザーがそこに置いたので、オッズはかなり良いです (少なくとも、「ユーザーは注意してください」状況です)。
eval
完全な JavaScript パーサーを起動します。現在、まばたきよりも速く発生する最新のブラウザでは...
eval
呼び出しているコンテキストで与えられたコードを実行します。これにより、そのコンテキストのローカル変数にもアクセスできます。
「eval
悪である」というマントラはeval
、人々が時々行うように(例えば、あなたが見るeval("obj." + nameOfProperty)
ように)不必要に使用し、あなたが制御していないコンテンツでそれを使用することに関連しています.