小さなウィジェットがあります。ウィジェットをiFrameに埋め込むWebサイトはほんの少しです。iFrameを埋め込むウェブサイトをいくつか許可する
_________________
| Friend |
| __________ |
| | Widget | |
| |_________| |
|________________|
"簡単!"ちょうどあなたのウィジェットのコードの先頭でこれを置く:
if (!/^http:\/\/([a-z0-9]+\.)?friend\.com)/.test(document.referrer)) {
alert('hacker detected');
return;
}
しかし、このコードは、ハッカーはこのない場合は、私たちを保護するために失敗します。巧妙なCSSを通して
_____________________
| Hacker |
| _________________ |
| | Friend | |
| | __________ | |
| | | Widget | | |
| | |_________| | |
| |________________| |
|____________________|
を、ハッカーが友達のレイアウトを切り落とすことができますウィジェットのみを表示します。どんな種類のハッキングも起こっているとは誰も思わないでしょう。だからあなたはもう一度こう言います。「簡単、これを行えるようにしてください:」
if (!/^http:\/\/([a-z0-9]+\.)?friend\.com)/.test(top.location.href)) {
alert('hacker detected');
return;
}
これはまだ動作しません。 top.location.href
を読むと、アクセス権拒否エラーが発生します。ハッカー、フレンド、ウィジェットのドメインはすべて異なるため、これはクロスサイトスクリプティングエラーです。
笑いながら、「ハッカーはこれをやっているすべてのこの問題を通過するつもりはない」と言う前に、私はすでにこれをやっている人々を見つけたと言いたいと思います。問題のウィジェットには、特定のウェブサイトに表示することが合法的に許可されている機密データがあります。