まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary」
毎秒1000リクエスト を捌く超高速CMS「adiary」
2019/12/30(月)adiary Version3.32 リリース情報
Ver3.32の変更点
- 静的出力時に記事一覧や年月別の記事リストを生成する機能を追加。(Thanks to Hansen)
- タグツリー、コンテンツツリーを一括で閉じるボタンを追加。
- 【スマホ】ドラッグアンドドロップの操作性を改善しました。
- 【Plugin】【ja】カレンダーの祝日(天皇誕生日)を変更しました。
- 【記法】script-deferブロック記法を追加。
- 【記法/Fix】Google画像検索等のURLを変更しました*1。(Thanks to jimba)
- 【Fix】ブログ一覧のテーブル表示でソートカラムを選択すると画面が切り替わる。
2019/10/23(水)adiary Version3.31 リリース情報
Ver3.31の主な変更点
JavaScriptまわりを1つのファイルにまとめて、adiary.jsとしてminifyしています。同時にCSSまわりも最適化しましたので、ロード時間が更に改善していると思います。
ただ、adiary.jsの根幹に手を加えているため、予期せぬ不具合が発生する可能性があります。安定志向の方はVer3.30をご利用いただければ幸いです。
Ver3.31d : 2019/11/24
- adiary.jsをリファクタリングしました。
- jQuery等のjsライブラリとまとめて、adiary.min.js に minify しました。
- テキストボックスのリサイズ等いくつか機能を削除しました。
- dailogを自作して、jQuery UIへの依存度を下げました。
- テーマ、CSS関連
- ui-iconをJavaScriptで生成するよう変更(pub-dist/ui-icon/ 画像ファイルを削除)
- 別で読み込んでいた Lightbox.css を削除し、関連画像のロードも減らしました。
- Ver2以前との互換のための画像アイコンを削除。*1
- ドロップダウンメニューの内部仕様を更新しました。
- CSS仕様を整理。
- JavaScriptを使わず中央等の位置調整するように変更。
- いくつかのテーマで表示が崩れていた問題を修正。
- Cookie設定時に「httpOnly」と「SameSite=Lax」を設定するようにしました(セキュリティ対策)。
- インポートログをボタンの近くに表示するようにしました。
- 【テーマ】いくつかのテーマで画像を埋め込み等最適化しました。
- 【記法】Ver3.30で削除していたインラインでtargetを指定する記法を再び使用可能にしました。
- 【記法】麻雀記法をより使いやすく拡張しました。
- 【記法】入れ子タグの解釈が間違っていた(後方一致検索をしていた)。
- 【Plugin】設定リセット機能をつけました。
- 【Plugin/des_twitter】管理画面で非表示にしました。
- 【Fix】HTTP.pmのtypoを修正(Thanks to t-hide)
- 【Fix】デザイン編集でタイミングにより二重に初期化してしまうことがある。
- 【Fix】月別記事リストのドロップボックス表示時のリンクが正しくない。(Ver3.20以降)
- 【Fix】記事一覧画面でログインしていない時もメニューへのリンクが出る。
- 【Fix】記事一覧画面から記事の表示/非表示を変更した際、タグ内の記事数が狂う。
- 【Fix】デフォルトブログでソーシャルアイコン等のリンクが正しくない(Thanks to やす)
- 【Fix】【sumomoテーマ】幅480pxのタブレット等で必要な画像が表示されない。
- 【Fix】【sumomoテーマ】タブレット等で表示時に、Viewportの設定に失敗する。
- 【Ver3.31a/Fix】コメント欄があふれることがある。
- 【Ver3.31b/Fix】記事編集画面で、タグを連続で追加できない。
- 【Ver3.31c/Fix】スマホ画面のドロップダウンメニュー動作がおかしい。
- 【Ver3.31d/Fix】【標準記法】(Ver3.30~)エスケープ文字の復元ミスを修正。script環境を修正。(Thanks to 荻拓)
- 他
2019/06/30(日)adiary Version3.30 リリース情報
Ver3.30の主な変更点
- reStructuredTextに対応。
- Sphinx連携機能追加で、 Sphinx統合環境CMSとして使える!
アップデートしたadiaryでreStructuredTextを使用する場合、adiary.conf.cgi に設定を追加する必要があります。RST(reST)に直接対応した初のCMSだといいな。
2019/05/31(金)adiary Version3.24 リリース情報
Ver3.24の変更点
バグ修正が主です。
- RSSからのリンクhash(#rss-tm)を除去する際、リロードしないようにしました。
- はてなブックマークの常時SSL化に伴い、はてなブックマークへのリンクを https に変更。
- RFC7231に準拠し、リダイレクトを相対パスで出力するよう変更。
- アルバムにアップロード時の拡張子制約を緩和し、半角英数以外を含むものを許可しました。(Thanks to harata)
- 【conf】<$v.album_allow_ver_ext>の設定を削除
- 【アルバム】ファイル名に使えない文字の制限を緩和しました。
- 【Fix】トップページの2ページ目で「前のページ」のリンクが正しくない。(Thanks to sabazo)
- 【Fix】mixiの画像サーバ等、一部のサイトにSSL接続できない。*1
- 【Fix】body が 0byte の結果を応答するとき、「Content-Length: 0」を送れていなかった。
- 【Fix/httpd】mime.types をロードする際、コメントも処理していた。
- 【Fix/httpd】"file?query" 形式のとき、ファイルをロードできない。
- 【Fix/httpd】拡張子判定時、大文字小文字を区別してしまう。
- 【Fix/アルバム】ゴミ箱関連のファイル名の挙動がおかしい。
- 【Fix/アルバム】ファイル名に特殊文字を含む場合の挙動がおかしい時がある。
- 【Fix/Markdown】「|:---|:---|」のようなテーブルを認識できない。
- 【Fix/Markdown】通常文字列に「|---|---|」などが続いた場合、テーブルと判定してしまう。
既知の不具合
- PostgreSQL/MySQL運用時、外部画像の取り込みが動作しない。
2019/03/12(火)adiary Version3.23 リリース情報
- Ver3.20以降の変更による累積的なバグ修正、httpd/EXEの修正が多めです。
Ver3.23の変更点
- Pocketのシェア数が取得できなくなっていたので取得機能を削除しました。*1
- デフォルトアイコンとデフォルトロゴを変更しました。
- 静的HTML出力が無効のとき、管理者以外にはエラーメッセージを表示しないように変更。
- 管理メニューの流れを少し改善しました。
- 記事編集画面でファイルアップロードの進捗を表示するよう変更。
- アルバムと記事編集画面のファイル選択ボタンのデザインを変更。
- 【アルバム】アップロード中の進捗を表示するように変更。
- 【アルバム】ファイルリネーム時に、画像以外はサムネイルを再生成するよう変更。
- 【アルバム】ファイルリネーム時に del キーが使用できない。
- 【httpd/EXE】Socket を STDIN に接続するのを止め、若干高速化しました。
- 【httpd/EXE】index.htmlを有効化しました。
- 【httpd/EXE】大きいファイルをダウンロードする場合、すべてメモリに展開しないようにしました。
- 【adiary.conf.cgi.sample】大きいファイルはテンポラリに書き出すよう変更。
- 【adiary.conf.cgi.sample】<$Form_options.multipart_use_temp>を<$Form_options.use_temp_flag>に変更。*2
- 【plugin】非公開コメントにヘルプを出せる機能を追加。
- 【Fix/plugin】Twitter通知プラグイン。2018/06/13以降、新規認証に失敗していた。
- 【Fix/Ver3.20-】デザイン編集時に、ヘッダが常に標準のまま(非カスタム状態で)出力されてしまう。
- 【Fix】稀に最初のファイルアップロードに失敗することがある。
- 【Fix】静的出力時、ヘッダにゴミが出力される。
- 【Fix】致命的エラーメッセージ(初期ディレクトリ作成失敗)がきちんと表示されない。
- 【Fix】大きなファイルを送信されたとき、<$Form_options.multipart_use_temp_dir>を設定していても、すべてメモリに展開していた。*3
- 【Fix】テンポラリとして /tmp などパーティションが異なるディレクトリを指定すると、アップロードに失敗する。
- 【Fix】コメント欄でTABが入力できないことがある。
- 【Security/httpd/EXE】HTTP_HOSTヘッダにタグを挿入可能だった。*4
- 【Security】HTTP_HOSTヘッダに虚偽の設定をした上でコメントを投稿するとRSSのホスト名部分を外部から書き換えられてしまう。*5
- 他
Hostヘッダインジェクションについて
今回のバージョンアップで、RSSのホスト部分を第3者が書き換え可能になるセキィリティホールが修正されています。
- 一般的なレンタルサーバでは問題ありません。
- 独自サーバ等でも、(最初以外の)VirtualHost部分にadiaryの設定がある場合は問題ありません。
- adiary.env.cgiで <Server_url> が設定されている場合問題ありません。
いわゆるHostヘッダインジェクションと呼ばれる問題で、Hostヘッダからサーバのホスト名を設定する仕様が原因になっています。幸い、Host名として不正なものはサーバソフトウェアが弾くのでJavaScriptを埋め込まれるといった問題は起こりませんが*6、RSSのURLが書き換えられる問題はおきます。
対策としては、最初のインストール時に HTTP_HOST から信頼できる URL を生成し記録しておくなどの方法が有効です。*7