はてなダイアリーで 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:ニヤニヤしてたのは、やらしいことを考えていたからです