2011-08-14 4 views
11

現在のところ、現代のブラウザを使用してシステムクリップボードにアクセスするためのJavaScriptはありません。Internet Explorerは例外です。その他多くのStack Overflowに関する質問(例:Clipboard access using Javascript - sans Flash?)では、この制限は、パスワードやその他の機密データをクリップボードから読み取るWebサイトから守るための意図的なセキュリティ手段であると説明しています。クリップボードから読みが巨大なセキュリティ上のリスクがあることだろうと明らかに思えますがクリップボードにを書いは次のようになり、なぜJSのクリップボードに書き込むと、セキュリティホールとみなされるのはなぜですか?

は、それは私にははっきりしていません。 JSがデータをクリップボードにコピーすることを拒否することによって、どのようなシナリオが存在するのかを守るブラウザがあるでしょうか?

答えて

14

クリップボードに書き込むことは、悪意のあるWebサイト(またはFlashベースの広告などのサイト内で実行されている他のコード)がユーザーを拡散してマルウェアを流出させるための手段です。これは数年前、フラッシュベースの広告で、マルウェアのURLをクリップボードにコピーしました。ユーザーが何かを貼り付けようとしたときにペーストして、Facebookブックやフォーラム、電子メールなどのものを汚染することがあります。 Tillyさんの猫の写真へのリンクの代わりに、いくつかのドライブバイマルウェアへのリンクを貼り付けていました。通常、これらは「あなたはウィルスに感染していますが、駆除ソフトウェアのために50ドルを払ってください」という偽のウィルス対策詐欺でした。 私はClipMateの顧客の多くが、なぜこれらの厄介なURLがClipMateに突然現れたのかを尋ねていたので、いくつかの調査をしました。調査中、私はMSNBCとDIGGのフラッシュベースの広告に襲われました。その後、Flash 10でクリップボードがロックダウンされました。私のサガについては、ここをクリックしてください。http://www.clipboardextender.com/defective-apps/clipboard-virus-not-exactly-but-still-dangerous

このようなことが起こるのを防ぐにはJavaScriptの制限が適用されます。

+2

現在、*これは本当のセキュリティ上の問題です。ちょうど私が探していたもの。ありがとう。 – goodside

+0

良い答え、この情報ありがとうございます。 –

+0

彼らはGithubと同じようにFlashを使うことができます。 – danuker

6

ユーザが自分のクリップボードを上書きしたくない場合はどうすればよいですか?

+0

正確に。たとえば、KeePassのユーザーは、彼がクリップボードに必要なパスワードを持っていて、自分が保存したいデータを上書きすると破壊的で厄介なものになります。これはブラウザがこの動作を望まない理由です。 – mopsled

+2

Flashは何かをクリックしたときにのみサポートしています。同じ方法でJavaScriptで実装されていればセキュリティホールは見えません。これらのFlashソリューションでは多くの問題を軽減できます。 – pimvdb

+2

これ以上の魅力的なものは表示されませんが、これは潜在的に有用なものを無効にする簡単な理由のようです。クリップボードを失うことは、重要なデータの長期保存ロッカーであることは期待できないため、最悪の場合は迷惑です。また、ポップアップ通知の作成など、普遍的にサポートされているJSを使用しているユーザーを悩ますために、他にも数多くの方法があります。 – goodside

3

もしユーザーがクリップボードに1つのものが含まれていると思われるが、秘密裏にそれが別のものに置き換えられているとすれば、それは潜在的なセキュリティ問題です。

攻撃の可能性は低いですが、ソーシャルエンジニアリングを含む何かを夢見ることができると考えることは不合理ではありません。秘密に変更された情報をターゲットリソースのパスワードフィールドに貼り付けるようにユーザーを説得します。そのリソースは、攻撃者が知っているパスワードで保護されます。

0

上記の脆弱性の問題とは別に、JavaScriptのクリップボードAPIのインパクトのある実装でセキュリティの問題が発生する可能性があるシナリオが少なくとも1つあります。

最近、Firefoxに最近導入されたpostMessageMessageChannel、またはBroadcastChannelなど、サーバー側を呼び出さずに別々のウィンドウ間の接続を確立するための新しいAPIが用意されています。これらのAPIは異なるレベルのブラウザサポートを備えていますが、すべてがクロスオリジンの問題を検討しています。つまり、このウィンドウが実際に明示的に許可しない限り、別のホスト上のウィンドウからメッセージを受信することは不可能です。

これはクリップボードAPIでは保持されません。クリップボードにコードを貼り付けるページのコードがいくつかあり、このクリップボードが別のウィンドウでスキャンされているとします。 これはいくつかの非常に奇妙でエキゾチックな仮定によっては非常に奇妙で高度にhypoteticalなシナリオですが、それに言及する価値はあります。

関連する問題