スポンサーサイト

■ スポンサー広告 Posted by ひぐま (Higmmer) on -------- at --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

改造版Sage1.3.6に見つかった幾つかの不具合を修正しました

■ 自作ソフト Posted by ひぐま (Higmmer) on 2006-09-27 at 02:49:53

◆共有テーマ: Firefox [コンピュータ]

昨日公開した改造版Sage 1.3.6(スクリプトインジェクション対策版)にいくつか不具合が見つかりましたので修正しました。現在、こちらのエントリから新しいファイルがダウンロードできます。既にダウンロードした方は、念のため、最新版に更新されることをおすすめします。

今回の修正内容は以下の通りです。

1.「HTMLタグを許可する」がオフの時、
  ・不正な"&lt"(セミコロン無し)という記述が"<"等に変換されてしまう
  ・単体の"&"がそのまま出力されてしまう
  ・エラー発生時にHTML文字列がそのまま出力される可能性がある

2.「HTMLタグを許可する」がオンの時、
  ・"sage.filter_accept_tags"に属性名を大文字で記述すると認識されない
  ・エラー発生時のメッセージが"undefined"となってしまう可能性がある

3.「HTMLタグを許可する」がオンの時、
  ・<H1>などの数字を含むタグ名が指定できない
  ・入力HTMLに"<DIV></DIV>"という記述があると"<DIV/>"と変換され、
   Firefoxでのレンダリング結果がおかしくなる

ところで1の不具合は、"&"単体のチェックをサボっていたのと、Mozillaの"htmlformatconverter"というコンポーネントがセミコロンで終わっていない不完全な文字参照でも解釈してしまうという条件が重なり、

&lt script&gt → < script>

のような変換が起こってしまうというものでした。但し上記のように"<"と要素名の間にスペースがあるものはFirefoxでは開始タグとは認識されないようなので、実際には問題は起こらないはずです。しかし気持ち悪いことには違いないので念のため修正しておきました。

ただ、入力文字列内の"&"を一律に"&amp;"に変換するように仕様変更した結果、副作用として

Love & Peace → Love &amp; Peace
std::vector<int> → std::vector&lt;int&gt;

のような、かなり見苦しいことになってしまいます(´・ω・`) ちょっとどうしようか思案中。暫定対策としては「HTMLタグを許可する」をオンにした上で"sage.filter_accet_tags"に空文字列を設定する方法もあります。テキストの解釈が微妙に異なりますが、全てのHTMLタグを無効化するという点では望み通りの結果が得られると思います。→修正しました。新しいバージョンでは「Love & Peace」も「std::vector<int>」も正しく表示されるはずです。

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。