RSSモジュール もうちょっと何とかならないか

はてなブックマークの生成するフィード(自分のブックマーク全体のRSSでも、HotEntryでも、「タグ『これはひどい』を含む新着エントリ」でも何でもよい)をはてなダイアリーRSSモジュールで表示させていると、しばしば表示の乱れにお目に掛かる。

コメント無しのエントリのへんな表示

コメントの無いエントリのフィードはdescription区間が閉じていない。より正しくは「閉じタグだけがあって開始タグが無い」。
そういうのをRSSモジュールで読み込むと description部分に「"rss"」なる文字列(引用符含む)が補われるようなのだけれども、この文字列がRSSモジュール表示時のAタグのtitle属性値にも使われていて、しかも引用符がエンコードされていない。その結果、Aタグ部分のソースが

 <a href="http://..." title="" rss="">...</a>

みたいなことになってしまっている。

これ、もしもdescription部分に「"rss"」以外の文字をユーザが自由に入れる方法が見つかったとしたら、それだけでXSS脆弱性の原因になるなぁ。「" onMouseover="...」とか書けそうだ*1

逆にエンコードのしすぎというのもある

description区間中に「"」が出て来ると、はてなダイアリーのHTMLソースがこんなことになる:

<dt>06/09 13:24 <a href="http://www.brainyquote.com/quotes/authors/f/frank_b_kellogg.html" title="&quot;It is not to be expected that human nature will change in a day.&quot;">Frank B. Kellogg</a></dt>
<dd>&amp;quot;It is not to be expected that human nature will change in a day.&amp;quot;</dd>

dd要素(これがRSSモジュール表示時のdescription部分だ)中でのエンコードが1回余計。前の例と違って脆弱性の原因にはならないだろうけれども、激しくブサイク。

CDATA区間を解釈できるようになったのはよいが

アタマに余計な改行文字か何かが付いてるのが気になって仕方ない。HTMLソースはこんな感じ:

<dt>03/22 <a href="http://subakdoduk.exblog.jp/3376014" title=" 

※MSIMEって「ごほうこく」を変換すると「ご報告」より先に「呉邦国」を出して来る癖が">【竹島】ご報告:dmoz側が島根サイトの説明を幾らか改善した件</a></dt>
<dd> 

※MSIMEって「ごほうこく」を変換すると「ご報告」より先に「呉邦国」を出して来る癖が</dd>

Aタグのtitle属性値とdd要素とが両方おかしくなっているな。

*1:これに近いことは以前はてなブックマークのエントリ標題/コメント欄の編輯で実際に起きたのを見たことがある。あの時は実際にJavaScriptイベントハンドラを自由につけてしまうことが出来た。