Lightbox的なJavaScriptライブラリの中でも軽さと機能性が使いやすいibox。
リンクにtitle属性をセットしておくと、開いたiboxのフッターにそのタイトルを表示してくれるが、このときにhtmlエスケープが解除されてしまう。
title="<b>foo</b>"
↓
表示されるタイトル=<b>foo</b>
用途によっては使いやすいのだろうが、タイトルには入力データを表示することが多いのでXSSの危険性がある。
対策:
ibox.jsの127行目あたりを下記のように変更する。
このタイトルは属性として使われるわけではないので、クォーテーションのエスケープは要らない。
if(title != "") {ibox_footer.innerHTML = title;} else {ibox_footer.innerHTML = " ";}
↓
if(title != "") {ibox_footer.innerHTML = title.replace(/</g, "<").replace(/>/g, ">");} else {ibox_footer.innerHTML = " ";}
0 件のコメント:
コメントを投稿