eval
誰かのコンピュータを変更するために使用できるブラウザ側のセキュリティの抜け穴がないと仮定すると、使用が実際の脅威につながる可能性があることを私は理解していません。
誰かがそれがどのように可能であるかを説明できますか?誰かがユーザーのコンピューターに何かを表示する可能性はありますが、リダイレクトまたはダウンロードの承認なしに実際に害を及ぼすことはできません。サーバー側のダメージはあり得ませんよね?
eval
誰かのコンピュータを変更するために使用できるブラウザ側のセキュリティの抜け穴がないと仮定すると、使用が実際の脅威につながる可能性があることを私は理解していません。
誰かがそれがどのように可能であるかを説明できますか?誰かがユーザーのコンピューターに何かを表示する可能性はありますが、リダイレクトまたはダウンロードの承認なしに実際に害を及ぼすことはできません。サーバー側のダメージはあり得ませんよね?
JavaScript の制御を引き渡す場合、害を及ぼす可能性があるのはその実行だけではありません。Ajax を使用すると、 flash オブジェクト、pdf、またはJavaアプレットを現在のページ自体にロードできる可能性があります。ダイアログが表示されず、プラグインを呼び出すことになります(ブラウザ自体よりも多くの権限を持っています)。
したがって、理論的には、プラグイン自体が許容できる限りの損害を引き起こす可能性がありますが、これは通常かなりの損害です。
JavaScript を使用すると、ブラウザからサーバーにデータを送信するためのさまざまな方法にアクセスできます。それらは、サーバーに対する攻撃 (サービス拒否攻撃を含む) を開始するために利用される可能性があります。
(コードまたはサードパーティのコードによって)グローバルにアクセス可能なJavaScript変数に格納されているデータはすべて、に渡されるコードで使用できますeval
。
そこに保存されているもの(ユーザー認証トークンなど)やシステムの設計方法によっては、サーバー側に多くの損害が発生する可能性があります。
eval はコードの実行につながる可能性があるため、そのコードを 100% 制御できない限り、サイトに脆弱性が生じます (これは非常にまれであり、とにかく eval を考慮していない場合もあります)。
この脆弱性は必ずしもサーバーに悪影響を与えるわけではありませんが、ユーザーに深刻な影響を与える可能性があり、場合によっては、ハッカーがユーザーの Cookie を盗んだり、セッションにアクセスしたり、その他多くのことを行う可能性があります。
簡単な例の 1 つは、サーバーがユーザー データを削除または変更するために必要なすべての情報をサーバーに送信する悪意のあるスクリプトを実行する eval です。リクエストは実際にはユーザー セッションからのものであるため、完全に有効なリクエストです。