<前の日記(2008年12月06日) 次の日記(2008年12月13日)> 最新 編集

高木浩光@自宅の日記

目次 はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 1805   昨日: 6103

2008年12月11日

楽天ad4Uの隠しリンクを露出させるユーザスタイルシート

脆弱性を突いてブラウザの閲覧履歴を調べるという禁じ手に手を出した、掟破りの(自称「次世代」)行動ターゲティング広告「楽天ad4U」について、amachangの「IEのinnerHTMLやappendChildで要素が挿入された瞬間を取得する方法」を参考に、その隠しリンクを露出させるユーザスタイルシートを作ってみた。(Internet Explorer用。)

#ad4u_list {
    display: expression(function() {
        if (!this.__mark) {
            this.__mark = true;
//            alert(this.innerHTML);
            var o = '<div style="overflow:scroll; border:dashed 4px red;">';
            o = o + this.innerHTML.replace(/A>/g, "A> ");
            o = o + '</div>';
            document.body.innerHTML = o;
        }   
        return ''; 
    }.apply(this));
}

使い方は、上記のテキストをファイルに保存(「user.css」などのファイル名で)して、Internet Explorerの「インターネットオプション」の「全般」タブにある「ユーザ補助」で、「ユーザースタイルシート」のところの「自分のスタイルシートでドキュメントの書式を設定する」にチェックを入れ、上記の保存したファイルを指定する*1(図1)。

画面キャプチャ
図1: IEのユーザスタイルシート設定画面

この状態で、「楽天ad4U」の広告が貼付けられたサイトを訪れると、図2のようになる。

画面キャプチャ 画面キャプチャ
図2: 「楽天ad4U」の広告が貼付けられたサイトの例

赤い破線で囲まれた部分が「楽天ad4U」広告の領域で、ここに隠して埋め込まれたリンクがこのように全部表示される。この中に訪問済みサイトがあれば、そのリンクの色が紫になっているはずだ。リンク先がどこかは、マウスポインタをリンクの上に載せれば、ブラウザのステータスバーで確認できる(図中の矢印)。

説明も同意確認もなく密かにこのような大量のリンクを送り付け、勝手にその訪問の有無を調べるというその一方的なやり方に対し、私たちは、こうして自分のコンピュータで何が行われているのか調べる正当な権利を有している。

上のスタイルシートはいろいろアレンジができる。「alert(this.innerHTML);」の行を有効にすれば、この広告が埋め込まれているページを訪れると警告が出るようになる。どこの会社が掟破りの広告を採用したか気付きしだい告発していくための調査に便利だ。

また、他のブラウザでも他の方法で実現できるかもしれない。

関連:

*1 このような、スクリプトを含むスタイルシートを使用することは、ブックマークレットやGreasemonkeyスクリプトをインストールするのと同様のリスクを伴う。悪意あるスタイルシートを組み込んでしまわないよう、得体の知れないサイトの言うことを信じて安易にインストールしてはいけない。


<前の日記(2008年12月06日) 次の日記(2008年12月13日)> 最新 編集

最近のタイトル

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|10|11|12|
2017|01|02|03|04|05|06|07|10|12|
2018|03|05|06|10|12|
2019|02|03|05|06|07|08|10|
2020|08|09|
2021|07|08|10|12|
2022|01|04|06|12|
2023|03|
2024|03|04|07|11|12|
2025|01|02|03|04|05|06|10|11|12|
<前の日記(2008年12月06日) 次の日記(2008年12月13日)> 最新 編集