理論:
すべての最新のブラウザでは、リンクスタイルを操作するときに特別な擬似クラスを使用できます。 ユーザーがそのhrefで指定されたアドレスに既にアクセスしている場合にリンクに割り当てられる訪問クラスに興味があります。 一見したところ、このアプローチは非常に肯定的な結果をもたらします-ユーザーはページ上で既にアクセスしたリンクを見て混乱していません。
しかし、Webページは長い間スタイルとマークアップのコードであるだけでなく、多くのスクリプト挿入物であり、それなしでは多くのサイトは単に機能しません。 JavaScriptコードはDOMツリーのすべての要素とそのプロパティにアクセスできるため、リンクスタイルに関する情報を取得できます。
したがって、訪問したリンクを通常の状態とは異なる色でマークし、スクリプトで色を確認することで、ユーザーが特定のアドレスを訪問したかどうかを判断できます。
そして、なぜこれが悪いのですか?
「考えてみて、問題だ!」平均的なユーザーは言うことができます。 しかし、この問題がどんなに些細なものであっても、それを過小評価してはいけません。 熟練した手でデータを開示する機会は、冗談を言う可能性があります。 サドマゾヒズムハムスター愛好家のサイトを訪問していることを知ると、攻撃者はどのように行動しますか? そして特にセクション、例えば、赤いハムスター? 恐らくこれは彼に何も与えないか、恐らくさらなる恐mailのためにあなたに関する情報を収集する最初のステップになるでしょう( 大気をエスカレートするために妄想を追加してください :))。
また、この手法は、 bruteforce Basic HTTP承認の特定の制限とともに使用できます。
制限事項
データを公開するには、潜在的な値を知る必要があります。つまり、インターネット上のリンクをチェックすることはできません。これには、攻撃者がチェックに使用されるデータの配列を入力する必要があります(ただし、テキストの後半の例2を参照)。
これの利点はありますか
「シルバーの裏地はありません」-たとえば、他のネットワークからデータをインポートできるソーシャルネットワークのページで、ユーザーが訪れたもののみを表示するなど、平和的な目的でこのテクノロジーの使用を妨げることはありません。
または、ユーザーが競合他社のサイトにアクセスしたことを知っているストアページは、価格を引き下げるプロモーションコードを自動的に接続できます。
実際のコードの例:
HabroUserHacker
「People」の最初のページからHabrauserプロファイルへのアクセスをチェックします
スクリプト
ドメインブルートフォーサー
ゾーン.ruのドメイン名を反復処理し、訪問済みのリストを表示します。
スクリプト
慎重に使用すると、システムが一時停止することがあります。 結果はすぐには表示されず、3文字までのドメインのみがチェックされます。 (テイクで終了= 470)。
もちろん、これは悪いアプローチです。作業中にリンクのリスト(ディレクトリからコピーされたものなど)をロードする方がはるかに優れています。
情報源:
http://www.gnucitizen.org/blog/javascript-visited-link-scanner/