はてなダイアリーで JavaScript eval ちょっと待って

盛り上がってるところ*1に水を差すようですが、
気になって仕事が手につきません。
さっき前の席の人に「なんでニヤニヤ*2してるんですか?」って聞かれました。
そろそろお昼なのに、食事も喉を通らないかもしれないので、
書いてしまいます。


はてダで Javascript を実行するという件について。

先日、自分のはてなダイアリーブログパーツを設置できるようになったので、事実上の JavaScript 解禁になりました。

ということで、JavaScript の eval を貼り付けるガジェットを Google Gadgets で作ってみました。


やりたくなる気持ちはわかります。
僕も id:amachang さん(面識も本題に関係もないのに名前出してすいません)とかのスクリプトとか、その場で実行したいです。
でも、外部から来た変数に eval したらいかんと思うのですよ。


↓例えばこんなことできちゃう
http://gmodules.com/ig/ifr?url=http://nitoyon.googlepages.com/js_eval.xml&up_eval=alert('bad%20script')&synd=open&w=320&h=50


いきなりこんな画面でボタン押す方がおかしいですが、
このガジェットを使用することで


「任意の人が自分の手を汚さずに(リンクを張るだけで)任意のコードを
実行させることができる」


んじゃないかと思います。

自動実行とかもやろうと思えばきっとできちゃうわけですからね。


代案があまり思いつかないですが、

  • 任意の人が
  • リンクを張るだけで

の部分を何とか出来そうな気がします。
トークンとセットじゃないと eval しないとか。


個人的には、外部から来た変数への eval は御法度だと思ってるんですが、
実際のところはどうなんでしょうね。

*1:はてブ http://b.hatena.ne.jp/entry/http%3A//d.hatena.ne.jp/nitoyon/20070820/javascript_eval_on_hatena_diary

*2:ニヤニヤしてたのは、やらしいことを考えていたからです