3

マルチスレッドの JavaScript に関するこの質問を読んで、JavaScript が複数のスレッドを生成できるようにすることで、セキュリティ上の影響があるかどうか疑問に思っていました。たとえば、オペレーティング システムまたはインタープリターを圧倒し、「未定義の動作領域」への侵入をトリガーするために、悪意のあるスクリプトがスレッドを次々と生成するリスクがあるでしょうか?それともほとんど問題ではないでしょうか? スレッド化されていない実装が影響を受けないスレッドをサポートする javascript の仮想実装を攻撃が悪用する可能性のある他の方法はありますか?

更新: ブラウザーをロックすることは、未定義の動作のエクスプロイトを作成することと同じではないことに注意してください。

4

4 に答える 4

2

いいえ、完全な実装では、複数のスレッドが追加のセキュリティ問題を追加することはありません。スレッド化された JavaScript は、JavaScript インタープリターを複雑にし、悪用可能なバグが発生する可能性を高めます。しかし、スレッドだけでは、セキュリティの問題が追加されることはありません。

「Threads Suck」のため、javascript にスレッドは存在しません - 言語設計者から詳細を読んでください ( http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html ) 。

于 2008-11-27T01:41:46.570 に答える
1

まあ、あなたはすでにブラウザーをロックアップし、振る舞いの悪い JS でシステムを深刻に遅くすることができます. エンライテンド ブラウザは、この種のチェックを実装しており、手に負えなくなる前に停止します。

スレッドも同様の方法で処理されると想定する傾向があります。


おそらく、「未定義の動作」の意味を説明できますか?信頼されていないスクリプトが実行中の OS ネイティブ スレッドの数を直接制御できるようにするインタープリターは、信じられないほどWorkerナイーブです。Gears がどのように実行するかはわかりませんが、API はs in WorkerPoolsを中心にしているため、使用中のネイティブスレッドの総数を非常に低い数に制限していません。

于 2008-09-02T16:55:14.023 に答える
0

マルチスレッド JavaScript の唯一の主要な例は Google の chrome だと思います (彼らはもうリリースしますか?) そして、私がそれを理解していれば、javascript はタブごとに 1 つのプロセスしか行わないので、タブ (ポップアップ) の生成を開始しない限り、私は仮定しますこれは無意味な問題ですが、Google はとにかくそれを隠しており、サンドボックスですべての JavaScript を実行していると思います。

于 2008-09-02T16:50:03.800 に答える
0

繰り返しになりますが、1) 言語でのマルチスレッド サポート (これは、将来起こることとして真剣に議論されているとは思いません) と 2) ブラウザーの JavaScript エンジン/インタープリターでのマルチスレッドの使用を区別する必要があります。

#2については、実装に欠陥がない限り、エンジン/インタープリターにセキュリティ上の懸念が実際にどのように追加されるかわかりません。

于 2008-09-02T16:51:01.210 に答える