毎秒1000リクエスト を捌く超高速CMS「adiary」
2010/12/20(月)adiary Ver2.21リリース情報
Ver2.13に機能追加しました。
Ver2.13→Ver2.21の変更点
- 「管理」→「設定」→「twitter関連の設定」
- 日記更新時に自動的にtwitterのTLへ更新情報を発言できるようになりました。
- 設定画面からtwitterのブログパーツ(プロフィールウィジェット等)を簡単に貼り付けられるようになりました。
- 過去のSEテーマ「adiary-tan, adiary-tan2, apedia-c72, bigblue, invent, tiyu, mashiro」のライセンスをGPLに変更しました。*1
- 画像アルバムのフィルダの閉じたり開いたりの状態を保存するようにしました。*2
- メール投稿時に、投稿者IDを紐付けて保存できるようになりました。複数人管理のブログ向けです。*3
- メール投稿の登録を、記事書き込み権限のみでできるようにしました。
- メール投稿時、書き込みパスワードが未設定ならば最初を空行にしなくても書き込めるようにしました。
- twitterのツイートアイコンを日記帳の設定から表示できるようにしました。
- はてなブックマークアイコンの埋め込みコードを新しくしました。
- 自動リンク使用時に、長いURLを途中省略するようにしました。
- fix等
- 本文がからの記事がインポートできない問題を修正しました(Thanks to kaede)
- テーマ変更がGoogle Chrome/Safariで動かない問題に対応。
- フレームなしテーマ変更がテンプレートの切替時に起こるバグを修正。
- インストール時。先にシングルモードを設定して、そのIDと違うIDを最初の管理者として登録したとき、リダイレクトの無限ループに陥る問題を修正。
- UTF8版におけるuploaderのcharset指定が誤っていたので修正しました。(Thanks to Nit)
- Google Chrom対策(Thanks to asano)
- 日記の投稿画面で記法入力ボタンをクリックすると記事が投稿されてしまう問題。
- Satsuki系のテーマで日記の投稿画面でテキストエリアの行頭にテキスト入力カーソルがあると、そのカーソルが見えなくなる問題を修正。
Version2.00(β含む)以降からの乗り換え
- そのまま上書きしてください。
- Ver2.11以前の場合、uploader.conf.cgi をサンプルから再生成してください。*4
なおVer2.06よりアルバムシステム関連のJavaScriptの置き場が変更になっていますので、紛らわしい場合は theme/*.js を消してから上書きしてください。
2010/08/17(火)adiary V2.09~とIE8での組み合わせでテキストエリア不具合
問題と修正方法
IE8を使用時、日記の編集画面やコメント投稿画面の表示がおかしい(textareaが後続の要素にかぶる)問題を修正しました。
Ver2.09~Ver2.13(Ver2.20C78SEの方はこちらを参照)をお使いの方は次のパッチを落としtheme/adiar.js と入れ替えてください。
- http://adiary.org/download/patch/adiary.js (2010/08/17 21:43ファイル差し替え)
※お手数ですが差し替え前にDLした方は再度DLしてください。
問題の詳細
IE8にはテキストエリアで文字を入力すると1文字入力ごとにエリア内が変にスクロールするという意味不明なバグがありました。そのバグに対するハックとして position:aboslute を指定する技があったのですが、いつの間にかIE8のtextareaバグが修正されたのか仕様が変わったのか、「position:abosolute」がそのまま正しく解釈されるようになっていました。
したがって、きちんとWindows UpdateされているIE8ではtextareaが「position:abosolute」となり後継の要素が上書きされてしまいます。
そのため、このハック自体を無効にしました。
2010/08/14(土)adiary C78 Special Edition
adiary C78 Special Editionがコミックマーケット78にて配布されます。
8/14(土) 「東3ホール ア38b」 頒価100円
参加団体であるadiaryユーザ会のえらい人が多忙のため、代わりに内容を書いておきます。
- すべての価値の9割を占める限定テーマはいつものテーマのえらい人ががんばっています。応援してあげてください(笑)
- レーベルは絵師様
現実逃避多忙のためでっちあげ、ポストカードはありません(苦笑)
Special Editon機能
- twitterのウィジェットを手軽に貼れる機能
- 日記更新時、twitterに自動的に更新情報を通知・発言する機能。
購入者の方へ
2010/06/19(土)adiary Ver2.13リリース情報
Ver2.12に対しバグ修正を行いました。
Ver2.12→Ver2.13の変更点
- コメント欄付近に埋込テキストをおけるようにしました。
- カテゴリリスト/月リストを「開いて表示」設定が無効になっていたので修正しました。
- 携帯表示のコメント欄関連の処理のおかしいところを修正しました。
- コメント投稿成功時に表示されるカレンダーが過去のものになることがあるバグを修正しました。
- メール投稿にて「Content-Transfer-Encoding: quoted-printable」に対応しました。
- Ver2.06以降の中間拡張子の許可機能で、標準の設定では test.php5.pdf などがアップロードできてしまう問題を修正しました。
- <$v.phone_kantan_disable=1> を設定すると、かんたんログインを無効にできるようにしました。(Request by asano)
- 1度に2通以上のメールがたまった状態でpopからのメール投稿が行われると、月別リスト表示が通常と異なるバグを修正しました。(Thanks to ひとぅ)
Ver2.13aの変更点
- IE8で日記の編集画面やコメント投稿画面の表示がおかしい問題の修正しました。*1
既に Ver2.13 をお使いの方は次のパッチを落として theme/adiar.js と入れ替えてください。
Version2.00(β含む)以降からの乗り換え
- そのまま上書きしてください。
- Ver2.11以前の場合、uploader.conf.cgi をサンプルから再生成してください。*2
なおVer2.06よりアルバムシステム関連のJavaScriptの置き場が変更になっていますので、紛らわしい場合は theme/*.js を消してから上書きしてください。
Version1.44以前(C73/2.00α含む)以前からの乗り換え
Version2.00への移行処理を先に行ってください。
2010/04/28(水)[adiary2] かんたんログイン認証の脆弱性対策
今はかんたんログイン脆弱性がブームなようです。今更何言ってるんだという感じですが、一応adiary内部でどのようにかんたんアクセスを処理しているか書いておきます。
かんたんログインとは
携帯の機種固有IDを使用した自動ログイン機能のことです。Cookieを実装する気のない某殿様商売通信キャリアの存在が一気に利用を広げました。
機種固有IDは、USER-AGENTなどのHTTPヘッダによって送信されます。HTTPについて知っている人ならすぐわかることですが、このヘッダは誰でも簡単に任意の値で送信することができるため何のセキュリティにもなりません。例えるなら、掲示板に書き込む際の名前欄で承認しているようなものです。しかも比較的単純な通し番号なので、秘匿性もあったものではありません。*1
adiaryの実装
もともとこんな危険なものを実装する気はなかったのですが(苦笑)、要望があったのでしぶしぶ実装しました。
右の画面がかんたんログインの実際の画面です*2。このページをブックマークしてもらい「かんたんログイン」をクリックしてもらうことでログインできます。
ID:useridの人がかんたんログインを設定したこの画面のURLは次のようになります。
http://~/adiary.cgi/=userid:LE0GdeSwSdQ/?login_docomo
LE0GdeSwSdQという文字列は「機種固有IDから生成されるハッシュ」です。adiary.conf.cgiの中の
<$Secret_phrase = '秘密の言葉'>
の設定が漏洩しない限りハッシュ文字列を第3者が知ることはできません。
仮にこのログインURLだけ漏洩しても、対応する機種固有IDが分からないとログインできません。ですので、いわゆるかんたんログイン脆弱性はadiaryには存在しないことが分かります。
しかし別の問題が……
次は携帯ログイン後のURLです。
http://~/adiary.cgi/=userid=kpQYloloFFF0M4Xnujjs/?login_docomo
「kpQYloloFFF0M4Xnujjs」がセッションIDになります。Cookieが使えないので仕方なくURLに埋め込んでいるのですが、リファラーからこのURLが漏れるとセッションが乗っ取られてしまいます。
ドコモはリファラを送らないことになっているみたいですが、他機種だと色々で頭の痛い問題です。
(参考)携帯電話向けWebアプリケーションのセッション管理手法
とりあえず
Cookieを食わせて、食べられたらそっちに誘導するように変更するか……。Cookie非対応でリファラ送信なんて機種もあるそうですが、それは端末脆弱性なんで無視かな。