まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2010/08/17(火)adiary V2.09~とIE8での組み合わせでテキストエリア不具合

問題と修正方法

IE8を使用時、日記の編集画面やコメント投稿画面の表示がおかしい(textareaが後続の要素にかぶる)問題を修正しました。

Ver2.09~Ver2.13(Ver2.20C78SEの方はこちらを参照)をお使いの方は次のパッチを落としtheme/adiar.js と入れ替えてください。

※お手数ですが差し替え前にDLした方は再度DLしてください。

問題の詳細

IE8にはテキストエリアで文字を入力すると1文字入力ごとにエリア内が変にスクロールするという意味不明なバグがありました。そのバグに対するハックとして position:aboslute を指定する技があったのですが、いつの間にかIE8のtextareaバグが修正されたのか仕様が変わったのか、「position:abosolute」がそのまま正しく解釈されるようになっていました。

したがって、きちんとWindows UpdateされているIE8ではtextareaが「position:abosolute」となり後継の要素が上書きされてしまいます。

そのため、このハック自体を無効にしました。

2009/06/28(日)adiary セキュリティアナウンス

adiary Ver1.992~Ver2.08を第3者にレンタルしている場合、セキュリティ上重大な欠陥がありますので、直ちに以下の差分を適用してください。

adiaryを設置者個人で利用している場合はこの問題の影響を受けません

問題の詳細

本来なら許可されない埋め込みテキストへのJavaScript等の記述が、トラストモードの設定に関わらず常に許可されていました。これは開発時のデバッグコードが、開発完了後もそのまま残り続けたことが原因です。

第3者にJavaScriptの埋め込みを可能とすることでセッションCookieの盗聴が可能になり、これによりadiaryを利用する他のアカウントをセッションハイジャックされる危険性があります。

修正の詳細

■修正前
$tag_escape->{allow_anytag} = 1; #$self->{trust_mode};
■修正後
$tag_escape->{allow_anytag} = $self->{trust_mode};

2009/04/22(水)IE + UTF-8版での問題 (adiary Ver2.06)

adiary 2.06のUTF-8版使用時、IEでJavaScriptエラーが起こります。

JavaScript文字コードとHTML文字コードの一致させないと問題が起こるIEが原因です。念のため次のファイルの文字コードを UTF-8 に置き換えてください。

theme/resizeform.js

文字コード変換がよくわからないという人は、以下のファイルを解凍して上書きしてください。

2008/12/26(金)adiary Ver2.01~2.03のサムネイルバグ

adiary Ver2.01から2.03で標準付属した設定ファイルにミスがあり、その設定ファイルを使用した場合、サムネイルを記事に貼り付けると正しいリンクが作成されない不具合があります。

ファイル名 : uploader.conf.cgi

(修正前)120行目付近
<$v.upload_tag_thumbnail = "[image#small:%i:%d:%f:%f]">	
(修正後)
<$v.upload_tag_thumbnail = "[image:%i:%d:%f:small:%f]">	

心当たりのある方は、現在使用中の uploader.conf.cgi のファイルをご確認ください。

ずいぶん前にご指摘いただいていたのですが、確認が遅れたために報告が遅れましたことをお詫び申し上げます。

追伸

もうすぐ Ver2.04 をリリースします。

2007/01/04(木)adiary + Apache 1.3

adiary + Apache 1.3において、PATH_INFOの解析に失敗することがある不具合を発見しました。mod_rewrite + single ユーザーモードで発生しやすいようです。症状としては、カレンダーで前月に辿れなかったりします。次期バージョンで対応しますが、応急処置的には次のような修正を行ってください。

lib/Satsuki/Base.pm の 1180行目付近に次の一行を追加してください。

$ENV{PATH_INFO} =~ s|//+|/|g;		←追加する行
my $str   =  substr($ENV{PATH_INFO}, 1);
$str      =~ tr/+/ /;
my @pinfo = split('/', $str);

Base.pm:修正したファイルを置いておきます。(Base.pm 52KB)*1

特に問題が発生していない方はこの修正は不要です。

*1 : 修正方法は違いますが問題ありません

追記 2007/01/05

そもそも特定状況下にてパス自動解析の動作が怪しい様子だったのですが、手元でApache1.3環境を用意して色々とテストしてみたものの、不具合が再現できませんでした。*2

*2 : スクリプトからのリンクに'//'が表れてしまうという不具合。発生条件が分かるかたはお知らせください。