Help us understand the problem. What is going on with this article?

self XSS についてと、SNS の JS コンソールいろいろ

More than 5 years have passed since last update.

昔からあるみたいなんだけど、qiita で記事検索してみたら無かったので投稿してみる。
selfXSS について。

とっても便利な JS コンソール

ちょっとした JS コードを動かすなら、chrome の JavaScript コンソールが便利だ。
chrome の右上、八卦で言うと「乾」みたいなマークを押し、ツール→ JavaScript コンソール で画面下側にコンソールが開いて、色々と実験が出来る。
同じものが Mac なら command + option + J で開く。手元に windows PC が無いが、たぶん ctrl + shift + j とかで開くはず。

ある日、facebook を開いているときに JS コンソールを開いたら、次のような警告が出た。

スクリーンショット 2014-09-22 17.05.14.png

悪意のあるコードを貼り付け無いように注意するとともに、 セルフXSSとは何ですか というページへのリンクが貼られている。

我々開発者は、SNS や EC サイト開発の際、不断の努力によって「A さんが B さんの個人情報を奪う」というのを防いでいる(ドヤァ)。
ところが、「A さんが A さん自身の個人情報を見る」というのはどうにも対策しようが無い。これを防いでしまうと、SNS が SNS でなくなってしまうからだ。
だから、ある程度盗みにくくすることはできるけれども、悪意のある第三者が善意のユーザーをだまくらかして、ユーザー自身が悪意のあるコードを貼り付けてしまうのを防ぐことが完全には出来ない。

それを受けての、この JS コンソールだと思われる。

その他の SNS

Twitter

スクリーンショット 2014-09-22 18.20.23.png
特に注意文は無いが、console.log 関数を上書きして何も表示されないようにしている。

Google+

スクリーンショット 2014-09-22 18.21.42.png

mixi

スクリーンショット 2014-09-22 18.23.08.png
mixiェ…

まとめ

self XSS への対策については(まだあんまり調べてないけど)、

  • Facebook, Google+ のようにコンソールに警告を出す
  • Twitter のように console や alert など、主要な API を何もしない関数に上書きしてしまう

などの合わせ技が有効かと思われる。

amoO_O
うん、まぁ。 I think so.
https://twitter.com/amoO_O
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away