2008年01月07日

fusen.inc.phpの'&'処理を修正

以前のエントリでも紹介した便利な付箋プラグインの

ですが、このプラグイン一つ問題があって「&」を記載すると、次回編集時に
&
に展開されて、それを保存して再編集すると
&
と言うふうにどんどんamp;が増えるバグがあります。

ただ、簡単に直せそうだったので、さっくり直してみました。

skin/fusen.jsの203行目の

fusen_getElement('edit_body').value = fusenObj[id].txt
fusen_getElement('edit_body').value = fusenObj[id].txt.replace(/\&/g,'&');
に直して終了です。

非常に簡単な修正で効果抜群なのでお勧めです。

なお、これだけだとサイト内リンクに使う「>」が化けるので、以下のようにするとそれも回避できます。

fusen_getElement('edit_body').value = fusenObj[id].txt.replace(/\&/g,'&').replace(/\>/g,'>');
ただXSSの脆弱性については深く検証してませんので、閉じた環境以外では利用しないようにしてください。

Posted by Takuchan at 2008年01月07日 22:16 | トラックバック(0)