IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

クリックジャッキングの本質的な解決策

誰か書いてそうだけど、気にせずに投下

現実的な解決策ではなくて、本質的な解決策

クリックジャッキングはそもそも CSS の問題なので CSS の枠組みで解決すればいい。

CSS での解決策

具体的には、以下のルールをユーザースタイルシートに追加すればいい。

 * { opacity: 1 !important }

CSS2, CSS2.1, CSS3 では、ユーザースタイルシートの !important な宣言は他のどの宣言よりも優先されるはずなので、ちゃんと仕様を満たしているブラウザを使っていれば問題ないはず。
IE の場合は、 opacity じゃなくて filter を。。というか、オプションで何か filter とか無効に出来た気がするけど、忘れた><)
ユーザースタイルシートは、 IE, Firefox, Opera, Safari ほとんどのブラウザで使うことができる。
あと、 iframe の大きさを制限しておくとさらに良いかもしれない。

 iframe {
   min-height: 200px !important;
   min-width: 200px !important
 }

ただ

すべての要素が透明にできなくなってしまうのは寂しいなあ。。。

ちなみに

iframe { opacity: 1 !important }

のように iframe だけにターゲットを絞ることはできない。親要素や祖先要素が透明になる可能性があるから。

追記

でも、よく考えると iframe の上に div やら何やらを載せてボタン意外を隠してしまうという手もあるなあ。ボタンは見えてるんだけど、ボタンの名前が「送信」とかだったら分からないな。
やっぱ、 CSS オフか iframe { display: none !important } が本質的なのかなあ。やっぱり現実的ではないな。