Geeklog IvySOHOプロジェクト
バージョンアップ情報
本ドキュメントでは、最も重要な改変や明白な改変の概要が簡単に見られます。改変の詳細リストは、ChangeLog. をご参照ください。docs/changed-filesのファイルには、最終版より変更されたファイルリストが入っています。
(Geeklog 1.4.0 は、元は1.3.12.ですので、バージョン1.3.12を参照した場合1.4.0に該当します。)
新たな特徴
- Geeklogは現在公式にはregister_globals = offで動いていますが、まだいくつかのプラグインでは、onにしなくてはいけないことに注意してください。
- TrackbackやPingbackのコメントの送受信向けのサポートが追加されています。それぞれ記事ごとにサポートされていますが、プラグインがこの機能を使えるように新しいプラグインAPIもあります。 Trackback や Pingback はconfig.phpで機能を抑止することが可能です。
- サイトのアップデートを通達するために、”ping” のウェブログ・ディレクトリ・サービス(blo.gsなど)の機能が追加されました。Trackback や Pingbackによって、この機能は記事ごとにサポートされていますが、プラグインもプラグインAIP経由でこの機能を利用することができます。
- Geeklogが読み取りと書き込みができるように、新しいシンジケーション・フレームワークが、RSS1.0だけではなく、複数のフォーマット(現在はRSS、RDF、Atom)でフィードできるようになりました。
- 新しいアドミニストレータが、ユーザー側の状況を管理していました。禁止とアカウントのアドミニストレータ起動が含まれています。????(=New administrator controlled user status. Including banning and administrator activation of accounts.)
- Blogger.com や LiveJournal.com などのような別のサービスのアカウントを持っている利用者が、サイトに直接登録しなくても自動的にログインできる新しい遠隔認証システムが追加されました。(遠隔アカウントは、通常アカウントとして禁止することもできます。)
- 管理部分が改訂され、より見やすく分類されたリストとなっています。“コマンドとコントロール” (moderation.php) も新たなアイコンででき、管理部分ごとにアイコンがひとつあります。さらに、管理ブロック、コマンド、コントロールはアルファベット順にソートできるようになりました。
- FCKeditor (WYSIWYG エディタ)が付いています。作動させるには、config.phpの $_CONF['advanced_editor'] = true に設定してください。
- 検索では、大きなデータベースを検索する際のタイムアウトを防ぐため、ページごとの検索結果を指定した件数だけ表示するようになりました。
注意:「ページ」検索をサポートするには、プラグインをアップデートする必要があります。アップデートをしないと、Geeklogはプラグイン検索ページの結果を正しく表示しません。プラグインがアップデートされていないと、全データベースを検索することになりますが、Geeklogは現在の検索結果のページしか表示しないことになります。
- “記事の一覧(Article Directory)が導入され、過去の記事が年ごと、月ごとにソートされ見やすく表示できるようになりました。
- 新たなオブジェクト(記事、トピック、ブロックなど)のデフォルトパーミッションを、config.phpで設定できるようになりました。
互換性
- 変更するには、Geeklog1.4.0.で動くようにテーマをアップデートしなくてはいけません。詳細はテーマ変更リストをご参照ください。
- コメント用のプラグイン API が改変されました。コメントを利用しているプラグインは、Geeklog1.4.0.で動くようにアップデートする必要があります。
このリリースは、Geeklog1.3.12用に独自に開発されたセキュリティー強化と、スパムプロテクトを提供しています。また、バグフィックスが適切な仕事量で、少数のバグを処理しています。(その他のバグフィックスは1.3.12.のリリースをお待ちください。)
セキュリティーとスパムプロテクト
- ログインの試行には速度制限があり、5分間に3回の試行にデフォルトします。( config.phpのconfigurable)
- 行送りは、COM_mailのeメールのTo:、From:、Subject:のフィールドからフィルタリングされます。
- 新しいユーザーアカウントが作成され、ユーザーのサブミッション・キューがconfig.phpで許可されると、万一アカウントの作成が途中で失敗した場合には、新しいアカウントが適切にキューされることを保証しています。
- メールがスパムと確認されると、速度制限も生じます。 (例えば、別のサブミッションを行う前に、送信者は速度制限が終了となるのを待つ必要があります。)
- スパムメールは、403“禁止”HTTP返信コードを取得します。
- スパムチェックは、コメント、記事、リンク、イベント・サブミッションや “友人宛eメール記事” オプションで送信されたメッセージや、ユーザープロファイルのコンテンツに対して行われます。
- Spam-X plugin 1.0.2が含まれています。
最近MT-Blacklist (Spam-Xで使用されている)が中止されたことにご注意ください。本リリースに含まれるSpam-X プラグインは、geeklog.netからブラックリストの最新バージョンを取得するように設定されていますが、アップデートはされません。
バグフィックス
- アーティクル・ページを閲覧する場合、PHP5.0.5以降で送られたエラーメッセージを修正します。 (bug #483)
- ブランクは別として、アルファベットでない文字を含んでいるときは、すぐにeメールアドレスの名前を引き出します。 (bug #368)名前に特別な文字があるユーザーにeメールをするときに役立ちます。
- 日本語やタイ語でのトラブルを修正するバージョン0.2.2に、ksesクラスを組み込んでアップグレードされています。(bugs #94 and #119)
- [staticpage:] オートタグを使用する時のSQLエラーが修正されています。(bug #373)
バグフィックスの全リストは、Changelogを参照ください。
改良点
- custom_usercheck関数 (顧客登録コード)のサポートが追加されています。詳細はlib-custom.phpをご参照ください。
- index.phpの自動アーカイブオプションの操作が改良され、ページのロード時間が少し改善されました。
- アップデートされた新しい言語ファイルがいくつか含まれています。
- アップデートされたPEAR クラスが含まれています。
本リリースは、以下のセキュリティー問題を報告しています。
- Stefan Esser が、ユーザーのパスワード・ハッシュのようなユーザーデータを、ある状況で取り出すように開発できるSQLインジェクションを発見しました。
Geeklog 1.3.11 は、Geeklog1.3.10を上回るバグフィックスとセキュリティーリリースであり、1.3.10に替わるものです。一つのバグフィックスが一つのデータベースの変更を伴うので、バージョン番号の変更が必要となりました。
セキュリティー問題
- 匿名のサブミッションがconfig.phpで消えても、匿名で記事を提出することができました。 ( Barry Wongの報告)
config.phpで利用しない限り、これらの記事はまだサブミッション・キューで完成しました。
- リンクのパラメータやイベント・サブミッションが、ポテンシャルSQLインジェクションに対し開いたままでいくつかフィルタリングされませんでした。
- 関連ブロック用のリンクが、フィルタリングされていない記事テキストから作成され、XSS攻撃の可能性があります。(Vincent Furiaの報告)
バグフィックス
- gl_comments テーブルの‘sid’フィールドの長さが修正されました。20字以上の記事IDを使用することで、コメントメールが記事と取り違えられることを防ぎます。
- PHP 4.1.x (アップデートされた PEARパッケージを含む) との互換性を保証します。
- すばやく起動するアーカイブオプションに修正しています。 (bug #345)
- 全トピックを削除する場合、コメントや記事画像を的確に削除します。 (bug #339)
- ポーリングを削除する場合、コメントを削除します。
- カレンダー内のいくつかのバグを修正し、サイトカレンダーとパーソナルカレンダー両方を総合的に処理するように改良します。(bug #268, #336, #338,その他)
- アーティクル内での "More by author" と "More from topic"のリンクを修正します。
- その他いろいろな修正があります。詳細はdocs/historyをご参照ください。
Geeklog1.3.10のユーザーの方には、1.3.11ASAPへのアップグレードをお勧めします。テーマや言語ファイルあるいは1.3.10以上のconfig.phpでの変更がありませんので、アップグレードは比較的簡単です。
新しいデフォルトテーマ
本リリースには、新しいデフォルトテーマが含まれます。Victor B. Gonzalez ( Aeonservで有名です)によって提供された専門的なテーマを選びました。テーマは少し修正され、現在HTML4.01とCSS コンプリアントとなっています。
また、古いテーマ(クラシック、クリーン、デジタル・モノクローム、ゲームサーバー、スムース・ブルー、Xシルバー、ヤフー)の配信を取りやめることに決定しました。それらは別のtarballとして利用できます。
新しい特徴
- Spam-X pluginが含まれています。 Tom Willet によりスパム探知プラグインが提供され、それはデフォルトGeeklogのインストールの一部となっています。
プラグインが、データベースにブラックリストを保存するために少し修正されました。プラグインの前バージョンのユーザーの方は、プラグインの管理パネルを通して各ブラックリストをインポートする必要があります。
- ストーリー・アーカイブ機能: 記事を“アーカイブ”トピックに移動するか、所定の時間に自動的に削除することが可能です。
- カスタマイズ・メニュー・バー: サイトのメニューバーは、config.phpで設定できます。例えば、どんなエントリーがどんな順番で表示されるかを選択できます。また、lib-custom.phpに関数を入れてカスタムエントリーを追加することもできます。
- テキスト・メールのクリック可能なリンク: HTML ではないメール内のURLはGeeklogにより認識され、クリック可能のリンクとして表示されます。
- 編集可能ストーリーID: 記事のID (スタティック・ページのIDのような)は変更でき、読み取り可能なURLにできます。(サーチエンジンによって、特にURLの書き換えをして利用する場合、検出されるチャンスがずっと増えます。)
- オートリンクは、記事やコメント内で利用できる新しいフォームのリンクです。オートリンクは、名前がタグネームになっていて、IDがリンク先のオブジェクトのIDで、リンクテキストがリンクのテキストとして使われている[name:idlink text]フォームを取っています。
例: [story:email-bug About the email bug]は<a href="http://example.com/article.php/email-bug">About the email bug</a>となります。
搭載オートタグに関しては、リンクテキストはオプションで、所定のものがない場合Geeklogはオブジェクトのタイトル(story, event, static page)を利用します。
記事にリンクする[story:]とイベントにリンクする[event:]が、あらかじめ定義されたオートタグです。プラグインは自分自身のオートタグを定義して、自分のコントロール下でオブジェクトにリンクすることができます。スタティック・ページのプラグインは、すでに[staticpage:]というオートタグを提供しています。
- カスタマイズ可能のeメール: あなたのサイトに登録しているユーザーに送信されたeメールは、テキストファイル(/path/to/geeklog/data/welcome_email.txt)のテキストを利用することで、完全にカスタマイズできます。
- タイムゾーン・ハック: 一般的な "タイムゾーン・ハック" が含まれています。あなたのサーバーが別のタイムゾーンにある場合、サイトのタイムゾーンを設定できます。
その他の改良点
- すべての動作を改善するため、さまざまな変更が行われました。
- 新しいインストール用に、あなたのMySQLバージョンがInnoDBのテーブル(現在のMySQL4.0または3.x”Max”で作られている)をサポートしていれば、InnoDBテーブル(MyISAMの代わり)を利用できるオプション機能があります。既存のデータベースは、スクリプトadmin/install/toinnodb.php.を利用してInnoDBに変換できます。
警告:InnoDB テーブルを使用すると、データベースのバックアップがいくらか複雑になります。小さいサイズや中程度のサイズのサイトは、MyISAMテーブルで十分に作動するので、心配な場合はInnoDBテーブルを使用しないでください。
- カレンダーの週は、日曜日か月曜日から始められます。
- スタティック・ページのプラグインには、スタティック・ページのプリンター支援バージョンを表示するためのオプションがあります。
注釈
- コメントコードは大きく変更されて動作が改善され、個々のコメントやページコメントなどにリンクできるような改良が加えられました。
- ユーザーは、サイトの管理者に対し悪意のあるコメントを書くことができます。
- サイトの管理者は、新しいコメントが送信された場合、eメール通知を受け取ることができます。(新しい記事、リンク、イベント、ユーザーに対するeメール通知と同じです。)
- コメント送信者のIPアドレスはトラックされ、Whois サービスにリンクして直接見ることができます。(または、Whois 機能を備えたTom WilletのNetTools をインストールすることができます。)
セキュリティー関連の修正
注意:以下のバグはすべてGeeklogの許可システムのトラブルや、「情報漏洩」の類です。たとえば、ある状況下で、サイトのコンテンツが閲覧できなかった人が閲覧できるようになります。これらのバグを使って、特典を得たり、Geeklogやその運営環境にダメージを与えるようには開発されていません。
- 管理者グループは、そのグループのメンバーでなくても、すべてのグループのメンバーをリストにできました。
- 管理者グループは、そのグループのメンバーでなくても、システム内のすべてのグループリストがもらえました。 (bug #280)
- 記事およびイベント管理者は、アクセスして読み込まなくても、すべての記事やイベントのリストを常にもらえました。 (bug #269)
- ユーザーがその記事を読む許可を持っていなくても(記事とコメントID両方を知っていれば)、その記事からコメントを要求することが可能でした。
- カレンダーの日付と週の画面のイベント許可が適切にチェックされず、イベントが見ることができないはずのユーザーにそのイベントが閲覧できました。
- サイトカレンダーの中で閲覧許可がない場合でも(イベントのIDを知っていれば)、パーソナルカレンダーに何らかのイベントを追加することが可能でした。
その他のバグフィックス
- 記事のサブミッションをプレビューしたり保存したりして、掲載された記事をサブミッション・キューに残しましたが、それを新しい記事として追加保存しました。
- パーソナルカレンダーからのイベント削除が、作動しませんでした。 (bug #199)
- 古いユーザーフォトは、フォトが異なったファイル形式の場合移動されました。たとえば、.gifから.jpg へ変わる場合です。 (bug #228)
- 画像の高さは最大値を越えるが、幅は最大値を越えない場合、画像のスケーリングは作動しませんでした。(bug #242)
- 画像を再スケーリングするためにgdlibを使用すると、スケーリングしていない画像を保存することはできませんでした。(bug #197)
- gdlibを使用すると、 GIF画像はPNGフォーマットに変換されましたが、GeeklogはGIFバージョンを表示しようとしていました。 LZW パテントが終了してから、再びGIF画像を使用することが安全となり、PNG変換はなくなりました。
- tarball にも、ユーザーが抱えているeメールトラブルが報告されている、アップグレードされたPEARパッケージが含まれています。(bug #246)
注意:これらは、Geeklog1.3.9sr2が付いてすでに出荷された同じPEARパッケージです。
テーマ変更もあり、その中のいつくかは、新しい機能を動作させるために重要であることにご注意ください。(たとえば、編集可能なストーリーIDとそのストーリー・アーカイブのオプション)!
本リリースには、Geeklogのコミュニティーによって提供された様々な改良点が含まれています。 (確認のためdocsまたはhistoryファイルをご参照ください。)
本リリースは、以下のセキュリティー問題を報告します。
- 匿名のサブミッションがconfig.phpで消えても、匿名で記事を提出することができました。 ( Barry Wongの報告)
config.phpで利用しない限り、これらの記事はまだサブミッション・キューで完成しました。
- リンクのパラメータやイベント・サブミッションが、ポテンシャルSQLインジェクションに対し開いたまま、いくつかフィルタリングされませんでした。
本リリースは、以下のセキュリティー問題を報告しています。
- 言語ファイル内の変数$topicを使うことで生じたクロスサイト・スクリプティングの脆弱性が修正されました。 (bug #293)
- 記事やポーリングに関するコメントメールの差し止めで、コメント送信が機能停止になりました。
その他の修正
- PHP5で正確に動作するようにlib-plugins.phpが修正されました。
- 完全なtarballには、報告されたeメールトラブルを修正するアップデートされたPEARパッケージも含まれれています。
本リリースは、以下のセキュリティー問題を報告します。
- 匿名のコメント送信がconfig.phpで消されても、匿名のコメント送信ができました。
このバグは、明らかに一定のGeeklogのサイトへ数百のスパムメールを送信するために、スパマーによって開発されたものです。
- コメントとサブミッションをチェックする追加速度制限が付加されました。
- どのトピックも匿名ユーザーには見えなかった場合、記事の閲覧許可によっては、サイトのインデックスページが匿名ユーザーに対して記事を表示していた可能性があります。
- トピックに関するデイリー・ダイジェスト・eメールを、ユーザーがまだ移動したトピックから取得していました。(bug #178)
- ユーザーが一定のトピックにアクセスしなくても、トピックすべてに関するデイリー・ダイジェストを購読することが可能でした。
- プロファイルを見ているユーザーが、コメントの掲載されている記事にアクセスする許可を持っていなくても、記事に対するコメントが、ユーザーのプロファイルに掲載されることがありました。
その他の修正
- ユーザーが自分のレファレンスからトピックを除外した場合のCOM_showTopicsのSQLエラーが修正されました。
- 匿名ユーザーに対する仮セッションIDを処理することで生じたerror.logの "Duplicate entry '...' for key 1."のメッセージが修正されました。
- デイリー・ダイジェストの間違ったオーサーネームが修正されました。 (bug #207).
- plugin_profileblocksedit_plugin-nameプラグイン API 機能が、usersettings.php. のコードの一部を紛失したため作動しませんでした。
COM_extractLinksは、"href" を含まないアンカータグを無視することになります。 (bug #183)
新しい特徴
- Geeklogは、すべてのeメールを送信するため、PEAR::Mailを使用しています。それにより、PHPの搭載メール()機能(前述)や、sendmailかSMTPを介してeメールを送信することができます。
- (RSS)フィードを作成したり設定したりするContent Syndicationという新しい管理オプションがあります。新たな記事をすべて含んでいる標準フィードに加え、トピックごとや次のイベント用、リンク用のフィードを作成することができます。
この機能は、プラグインがフィードを追加できることで拡張可能です。フィードクラスを追加することで、RSS0.91以外のフォーマットでフィードを提供することも可能です。
- 管理者は、ブロックのリストからブロックの順番を簡単に変更することができます。
- グループにユーザーを追加する代わりとなるインターフェースがあります。(JavaScriptが必要です。)
- 管理者グループのユーザーは、自分自身がメンバーになっているグループに他のユーザーを割り当てることだけできます。
- 画像のアップロードも、画像をスケーリングするためにGDライブラリを使うことができます。
- コメントはテンプレートを使用します。
- ファイルのアップロードを許さない厳しいウェブホストを、スタンダード画像ディレクトリに適応させるために、新しいコンフィグレーション変数$_CONF['path_images']を設定して、アーティクル画像とユーザープロファイル画が保存されるウェブツリー外部のディレクトリに進むことができます。
- Geeklogは、記事のURL用のURLリライトをサポートしています。たとえば、グーグルで取り上げられているhttp://www.geeklog.net/article.php/20031229225326631のようなURLを持つことができます。
- プラグインは、Geeklogの新しいブロックにそれ自体のセクションを追加できます。
- すべての URLフィールドは、255文字まで保管ができます。(テーマのアップデートが必要です。)
テーマ変更の完全なリストは、テーマの説明をご参照ください。
スタティック・ページ プラグイン 1.4も他の改良点に含まれており、PHPの返信文を使わずに、スタティック・ページにPHPを組み込む二つ目のオプション機能があります。
バグフィックス
- サーチ・クエリーからの文字は、コメント内でハイライトされています。また、サーチ・クエリーが'*' 文字を含む時は、ハイライトすることで問題を修正しました。
- サーチクラスでのさまざまな修正
- 空のユーザーネームでユーザーが登録できるバグが修正されました。
- ユーザーがバッチをインポートしている時、そのユーザーはみな自動的にデイリー・ダイジェストを予約していました。(代わりに $_CONF['emailstoriesperdefault'] の設定を使います。)
- ルートグループ(たとえば管理者)のユーザーが以前利用できたコメント削除のオプション機能が、修正されました。実際の記事に対して記事編集許可を持っているユーザーは、コメントを削除できます。
- グループの削除は、 group_assignments テーブルに孤立したエントリーが残る場合があります。 (これは現在修正されました。)1.3.9にアップグレードする場合、インストールのスクリプトは、データベースから孤立したエントリーを移動することになります。
セキュリティー、特にSQLインジェクションに対するセキュリティーを改善するために多くの変更がありました。
本リリースは、以下のセキュリティー問題を報告しています。
- 言語ファイル内の変数$topicを使うことで生じたクロスサイト・スクリプティングの脆弱性が修正されました。 (bug #293)
- 記事やポーリングに関するコメントの差し止めで、コメントの送信が機能停止になりました。
本リリースは、以下のセキュリティー問題を報告しています。
- 匿名のコメント送信がconfig.phpで消されても、匿名のコメント送信が可能でした。
このバグは、明らかに一定のGeeklogのサイトへ数百のスパムメールを送信するために、スパマーによって開発されたものです。
本リリースは、以下のセキュリティー問題を報告しています。
- 管理者グループのユーザーやユーザー管理者グループが、ルートグループのメンバーになることができました。 (Samuel M. Stoneの報告、 bug #135)
- 一定のエリアの管理者になると(記事に関する記事管理者など)、ユーザーがそこにアクセスすることを許されていなくても、オブジェクトのIDを知っていれば、そのエリア内(記事など)のすべてのオブジェクトを削除することができました。
- イベントIDを知っていれば、他の人のパーソナルイベントを削除することが可能でした。
- ユーザーが実際の記事にアクセスしなくても、記事のコメントを見ることができました。(Peter Roozemaal の報告)
- XSS問題のために、誰かのアカウント設定を取得して、特に巧妙に作られたリンクをクリックした場合、その設定(パスワードを含む)を変更することができました。 ( Jelmerの報告、Vincent Furiaにより提案された修正)
- SQLのインジェクションの可能性から、コメント表示に障害が起きました。 (Jelmerの報告)
- カレンダーにJavascriptコードを入れることができました。 ( Jelmerの報告)
- コメントプレビューのJavascriptコードを実行することができました。(Jelmerの報告)
本リリースは、以下のセキュリティー関連の問題を報告しています。
- 指摘されている"dr.wh0"のように、リンクサ・ブミッション用のカテゴリー・フィールドは、まったくフィルタリングされていませんでした。その32文字で多くの障害を生じさせることはおそらくできませんが、現在これは修正されました。
- Vincent Furia が、ユーザー向けのeメールのフォームに対する制約を回避することができ、その制約をスパムユーザーに使用することもできることを発見しました。これらの問題の修正に加え、そのフォームには速度制限もあります。(ストーリー・サブミッションの速度制限に対するデフォルト)
- 匿名のユーザーへの送信が停止された場合でも、匿名でコメントを送る方法がありました。
- ほかの誰かのユーザーネームでコメントを送ることができました。
Jouko Pynnonen が、1.3.8で導入した新たな“パスワード忘れ”の機能を使って、アタッカーがアカウントのパスワードを変えてしまう方法を発見しました。このリリースは、この問題を報告します。その他の変更はありませんでした。
できるだけ早くアップグレードすることをお勧めします。
本リリースの掲載目的は、2003年の9月と10月初旬に報告されたセキュリティー問題を報告することです。本バージョンにアップグレードすることを強くお勧めします。
セキュリティー問題
- Ulf Harnhammar's kses HTML フィルターを組み込むことにより、このリリースは種々の実行可能なJavascriptのインジェクションとCSSの損傷問題を報告しています。
- SQL エラーの詳細は、ブラウザではこれ以上報告されることはありません。(Geeklogの error.log ファイルだけで報告されます。) これは、エラーメッセージ(報告されたSQLインジェクション問題でわかったトラブルに限り)の一部としてデリケートな情報が暴露されることを防ぐものです。
現在はMySQL4.1でGeeklogを使用することを推奨していないことにご注意ください。(これが書かれた時点では、alpha stateでプロダクションのサイト上では使用されていません。)Geeklogの次のリリースには、SQLインジェクションの試行をより完全にフィルタリングする機能が付き、MySQL4.1でトラブルを修正します。
その他の修正
- URLにポートナンバー(example.com:8080など)が含まれていた場合、変数$_CONF['cookiedomain']の値の自動検索が修正されました。これで、何人かのユーザーが報告していたログインのトラブルが修正されます。
- 完全な 1.3.8-1sr1 tarball にも、アップデートされたフランス語(カナダ)やトルコ語のファイルが含まれます。
Geeklog 1.3.8-1 は、Geeklog1.3.8を上回るバグフィックスのリリースです。さまざまな(ほとんどマイナーな)バグフィックスが含まれています。それらの問題は、なにもセキュリティーに関連していません。
バグフィックス
- 以前の1.3.8の動作 (検索結果が戻ってこない場合、$_CONF['searchloginrequired']を使ってもう一度検索フォームを表示するなど) を復活させる新しい検索機能に修正します。また日付による検索を修正しました。
- MySQLバージョンの確認を試みた場合の、インストールスクリプトの問題は修正されました。インストールスクリプトは、PHP4.0.4以前のバージョンでは作動しませんでした。
- 画像を含む記事の関連ブロックのトラブルは修正されました。
- デイリー・ダイジェストを送信するとき、“匿名”のユーザーを省いてください。
- 管理者が、ユーザーのeメールアドレスを、別のユーザーがすでに使用しているアドレスに変更しないようにしてください。
- 記事を削除するときは、RSSフィードと古い記事ブロックをアップデートしてください。
完全な 1.3.8-1 tarball にも、新しくアップデートされた言語ファイが含まれます。(詳細はChangelog をご参照ください。)
新しい特徴
Geeklog 1.3.8 には、スタティック・ページ1.1と1.2のプラグインの両方に替わるスタティック・ページ1.3プラグインが含まれています。詳細についてはスタティック・ページの説明をご覧ください。
- 検索機能はリライトされました。ページやすべての言葉、クエリーからのどんな言葉も適切に検索できます。検索する言葉は、記事の中でハイライトされます。
- 新たなプライバシー・オプション: ユーザーは、他のユーザーや管理者からのeメールを受け取るかどうか、誰かのオンラインブロックに出すかどうかを決めることができます。
- 一定のグループにいるすべてのユーザーのリストを取得することができます。(管理者グループのエディタから)
- スケーリングが記事の画像用に設定されている場合、スケーリングされていない画像を保管できます。(最初にconfig.phpでできなければいけません。) そのような場合、記事の中のスケールダウンした画像は小さくなって、スケーリングされていない画像にリンクされます。
- あるトピックをデフォルトのトピックにできます。記事のサブミッションフォームでのトピック選択が、そのトピックに対しデフォルトされます。しかし、トピック (index.php?topic=Geeklog など)で閲覧する場合、新しい記事のサブミッションは、現在のトピックに対してデフォルトされます。
- あなたのユーザーにユーザーネームを変更させたり、アカウントを削除させたりすることができます。両方の機能は、config.phpで使えなければいけません。
- 拡張プラグイン API: プラグインは、Geeklogの中心エリアのコンテンツを表示することができ、ユーザーのプロファイルにプラグイン自身の情報を追加でき、またサイトのヘッダー(<head>セクション)に情報を追加することもできます。
- 顧客登録フォーム用に新しいAPIがあります。 (サンプルコードはlib-custom.phpをご参照ください。)
- ハードコードのHTMLの最大部分をテンプレートファイルに移動し、テーマデザイナーにレイアウト以上の管理をさせるために、少しテーマの変更がありました。変更リストはテーマの説明をご参照ください。
バグフィックス
- “パスワード忘れ”機能がリライトされました。古いパスワードをリセットして新しいパスワードを送信する代わりに、独自のリンクがあるeメールを受信します。このリンクに従えば、直接新しいパスワードを登録することができます。リンクしない場合は、単にそのeメールを無視することができ、古いパスワードが有効のままとなります。
- トピックのアクセスが、必ずしも適切にチェックされてはいませんでした。記事の管理者が、1.3.8にアップグレードした後で定義されたメッセージにアクセスしたことを伝えてきたら、あなたのトピック許可を注意してチェックしてください。
- ポールエディタで、何度もひとつの回答を入力できます。(たとえば、回答の最大回数が10回に設定されている場合、実際には11回入力できます。) あなたのポーリングをチェックしてください。ポーリング回答の最大回数を超えていたら、最後の回答が無効になっているかもしれません。 (必要に応じて、 $_CONF['maxanswers']としてください。)
- Geeklogは、MySQLの古いバージョン(特に3.22.xx)でインストールして再び動作します。これらの古いバージョンは、MySQL ABでサポートできないものもあり、3.23.54より古いものをインストールしているMySQLには、セキュリティー問題があることにご注意ください。
本リリースは、以下のセキュリティー問題を報告しています。
- 管理者グループのユーザーとユーザー管理グループが、ルートグループのメンバーになることができました。 (Samuel M. Stoneの報告 bug #135)
- ユーザーが記事にアクセスすることが許されていなくても、オブジェクトのIDを知っていれば、一定のエリア(たとえば、記事の記事管理者)の管理者になることで、そのエリアのすべてのオブジェクト(たとえば、記事)を削除できました。
- イベントIDを知っていれば、他の人のパーソナルイベントを削除することができました。
- ユーザーが実際の記事にアクセスしなくても、記事のコメントを閲覧することができました。( Peter Roozemaal の報告)
- XSS問題のために、誰かのアカウント設定を取得して、特に巧妙に作られたリンクをクリックした場合、その設定(パスワードを含む)を変更することができました。 ( Jelmerの報告、Vincent Furiaにより提案された修正)
- SQLのインジェクションの可能性から、コメント表示に障害が起きました。 (Jelmerの報告)
- カレンダーに Javascript コードを入れることができました。 ( Jelmerの報告).
- コメントプレビューのJavascriptコードを実行できました。(保存はできない。)(Jelmerの報告)
本リリースは、以下のセキュリティー関連問題を報告しています。
- 指摘されている"dr.wh0"のように、リンクサ・ブミッション用のカテゴリー・フィールドは、まったくフィルタリングされていませんでした。その32文字で多くの障害を生じさせることはおそらくできませんが、現在これは修正されました。
- Vincent Furia が、ユーザー向けのeメールのフォームに対する制約を回避することができ、その制約をスパムユーザーに使用することもできることを発見しました。
- 匿名のユーザーへの送信が停止された場合でも、匿名でコメントを送る方法がありました。
- ほかの誰かのユーザーネームでコメントを送ることができました。
本リリースの目的は、2003年の9月と10月初旬に報告されたセキュリティー問題を報告することです。Geeklogの最新バージョン(これが書かれている時点で、1.3.8-1sr1)にアップグレードする予定がない方には、代わりに少なくとも1.3.7sr3にアップグレードすることをお勧めします。
セキュリティー問題
- Ulf Harnhammar's kses HTML フィルターを組み込むことにより、このリリースは種々の実行可能なJavascriptのインジェクションとCSSの損傷問題を報告しています。
- SQL エラーの詳細は、ブラウザではこれ以上報告されることはありません。(Geeklogの error.log ファイルだけで報告されます。) これは、エラーメッセージ(報告されたSQLインジェクション問題でわかったトラブルに限り)の一部としてデリケートな情報が暴露されることを防ぐものです。
現在はMySQL4.1でGeeklogを使用することを推奨していないことにご注意ください。(これが書かれた時点では、alpha stateでプロダクションのサイト上では使用されていません。)Geeklogの次のリリースには、SQLインジェクションの試行をより完全にフィルタリングする機能が付き、MySQL4.1でトラブルを修正します。
セキュリティー問題
本リリースの目的は、以下のセキュリティー問題を修正することです。すべてのユーザーには、本バージョンASAPにアップグレードすることを強くお勧めします。
- 管理者アカウントを含め、Geeklogサイトのアカウントごとに有効なセッションIDを取得することができました。 ( SCAN アソシエイツの報告)
- Internet Explorerを使うと、はめ込まれたPHPコードで画像をアップロードでき、実行することができました。 ( SCAN アソシエイツの報告)
- 記事の許可は、トピック許可を無効にしてしまい、アクセスできなかったユーザーに記事を表示する結果となりました。( Andrew Lawlorの報告) これは2003年5月15日にリリースされた新しいindex.phpですでに修正されました。
- 以下のタグのいずれかを許可されたHTMLのリストに追加すると、サイトがスクリプトの攻撃を受けやすくなってしまうという警告がconfig.phpに追加されました。
<img> <span> <marquee> <script> <embed> <object> <iframe>
( Joat Dedeの指摘)
このアップデートには、ユーザーが管理エリアで見る“許可が拒否されました”というよく見られるエラーメッセージに対する修正が含まれています。(たとえば、記事を保存しようとしたり、記事管理者許可のあるユーザー「のみ」とする場合)
完全な 1.3.7sr2 tarball にも、アップデートされた種々の新しい言語ファイルが含まれています。(詳細は Changelog をご参照ください。)
セキュリティー問題
本リリースの主な目的は、以下のセキュリティー問題を修正することです。ユーザーの方には、本バージョンにアップグレードすることを強く推奨いたします。
- Javascript コードをユーザーのプロファイルのホームページ面に組み込むことがでました。 ( Jin Yean Tanの報告)
- Javascript コードを、クロスサイト・スクリプティング攻撃で使用するために、一定のURLに組み込むことができました。 ( Jin Yean Tanの報告)
- コメントID(通常は見えません)を知っていれば、コメントをだれかが削除することができました。
- 記事にアクセスしなくても (たとえば、あるグループのメンバーでない場合)、記事管理者が記事を操作できました。イベント、リンク、ポーリング、トピック、ブロックの管理者にも同じことができました。( Kobazの報告)
その他のバグフィックス
- index.phpで、リダイレクションするエンドレスループが生じる可能性を修正しました。$HTTP_SERVER_VARS['HTTP_HOST'] が設定されていなければ、リダイレクションを起こしません。また、設定と実際のサーバーネームを比較すれば、もう不安定な状態にはなりません。
- ImageMagickを使用する時に、リサイズする画像を修正しました。
- ‘ユーザー’が、$_CONF['notification']に登録されていなくても、新しいユーザー通知eメール(Geeklog1.3.7で導入されている)が常に送信されました。
- 管理メニューは、管理機能のコアの一つではなくプラグインのみに対して管理者アクセスしているユーザーに表示されています。
- デイリー・ダイジェスト用のデフォルトは、“off”に戻ります。たとえば、新しいユーザーは自動的にダイジェストを受け取りません。新しいユーザー向けのデイリー・ダイジェストを再び可能にするには、config.phpに $_CONF['emailstoriesperdefault'] = 1 を設定してください。
ドキュメント及びハードコードリンク(バージョンチェック、サイトのフッターのGeeklogへのリンク)は、http://www.geeklog.net/ へ行くようにアップデートされました。
新しい特徴
- 通知eメールは、新しい記事、リンク、あるいはイベントが掲載されたか、新しいユーザーがそのサイトに登録したときに送信されます。 (詳細はサブミッション設定をご参照ください。)
この機能がGeeklogのセキュリティー機能と一緒にはなっていないことにご注意ください。多くの方からこの機能性が望まれたので、本当にハック以上のものでした。
- What's New blockの「過去24時間の記事」にリンクすると、新しい記事が表示されます。
- ユーザーフォトは、記事の画像のようにリサイズされています。(画像ライブラリの使用が設定されている場合)。ユーザーフォトの最大寸法は、config.phpの別々のconfig変数で設定できます。
- プラグインメニューは、ファイルシステムに存在するがまだインストールしていないプラグインすべてを表示しています。また、容易にインストールできるように、それらのプラグインのインストールスクリプトへのリンクも提供しています。
- いくつかの新しい config 変数が、config.phpに追加されました。 (notification, showfirstasfeatured, dateonly, timeonly, skip_preview, upcomingeventsrange, emailstoryloginrequired, hideemailicon, hideprintericon, hidenewstories, hidenewcomments, hidenewlinks, max_photo_width, max_photo_height, max_photo_size). 詳細はconfigの説明をご参照ください。
- テーマ変更: 変更リストはテーマの説明をご参照ください。
バグフィックス
- 不完全な言語ファイルを使った場合(あるいはURLを利用した場合)に、すべての記事を消去させないように、管理者記事エディタにしっかりしたチェックを加えました。
- UserAdmin 許可を持つユーザーに、ルートユーザーのパスワードを変更させ、実際にルートになるlib-security.phpの危険なバグを修正しました。
- "homeonly"と設定されるとブロックが消えるトラブルを修正しました。
- 記事とコメントの複数の [code] ... [/code]部分のトラブルを修正しました。
- [code]部分とPHP4.2.0以上のHTMLフォーマットのコメントでの2行スペーシングを修正しました。
- Geeklogで送信されたeメールのスラッシュとHTMLエンタイトルのトラブルを修正しました。
- プラグインAPIへの修正と改良
寄稿者: Blaine Lang、 Vincent Furia、及び Kenn Osborne が本リリースに寄稿いたしました。
1.3.6以前の古いバージョンからアップグレードする場合、installディレクトリにあるaddindex.phpと呼ばれるスクリプトを作動しなくてはいけなくなるかもしれません。このスクリプトは、Geeklogのデータベーステーブルのいくつかにインデックスフィールドを付加し、アクセス時間全体を少し改善します。
データベースにどれくらいのユーザーや記事などがあるかによって、実行時間がかかるかもしれないので、これは別々のスクリプト(インストールスクリプトのアップグレード処理の一部ではなく)として実行されました。たとえば、ホスティングサービスがPHPスクリプトの実行時間に制限を与えている場合、タイムアウトになる人がいるかもしれません。そういうことになっても、慌てないでください。どのテーブルにもフィールドが追加されませんでしたと通知されるまで、何度もそのスクリプトを実行してください。 (何度も何度も ...)
Geeklog1.3.7を新しくインストールすれば、このスクリプトを実行する必要がないことにご注意ください。新たにインストールしている間に生成されたデータベースには、すでに新しいインデックスフィールドがあります。
新しい特徴
- アーティクルの画像は、アップロード中に自動的にリサイズできます。( ImageMagickか netpbm のどちらかがインストールされている場合)。詳細については、コンフィギュレーションの説明をご参照ください。
- "Frontpage" というタイトルのスタティック・ページのコンテンツは、Geeklogサイトでフロントページ上の最初の記事の前に表示されます。スタティック・ページがさらに”nonews”ラベルをつけている場合は、完全にフロントページのニュースを入れ替えることになります。
- ユーザー・サブミッション・キュー: 起動しているとき ( config.phpで)、新しいユーザーは自分のパスワードを受け取る前に、管理者によって承認される必要があります。
- サブミッション・キューは別々に、完全に(config.php で)かまたは一定のユーザーグループのみで消すことができます。(新しい機能 story.submit、 links.submit、 event.submitを使って)
- ソースコード(PHP、HTMLなど)を送信すると、 [code] ... [/code]という仮のタグを使って、一字一句変えずに再生された送信文を封入できます。
- リンクセクションでは、分類、ページ分けされたディスプレイ(別々にオフできて、以前の1.3.6スタイルのリスティングにも戻れます。)が使われています。
- 必要ならば、匿名ユーザーをサイトのほとんどすべての部分(たとえば、リンクセクション、サイトstats)からブロックできます。
- Geeklogサイトは、config.php.にフラッグを設定して簡単に機能停止することができます。(たとえばメンテナンスの場合など)
- テーマ変更: 変更リストはテーマの説明をご参照ください。
バグフィックス
- いくつかの修正で、許可が適切にアカウントされることが保証されました。(たとえば、ユーザーがアクセスしていない記事のタイトルを表示しない。)
- Geeklogが適切にローカライズされることを確認できるように、いくつか修正が行われました。(最新の言語ファイルを持っていて、国と言語に適したローカル設定を選択した場合。)
- 変数 $_CONF['site_admin_url'] を、Geeklogの管理ディレクトリをリネームすることができるように、適切に使用しています。
- 新しい RDFパーサーは、ほとんどの(全部でなければ)RDFニュースフィードを適切にインポートします。
注意
- config.phpには新しい変数がたくさんあるので、前回のインストールから古いconfig.phpをコピーする代わりに、そのファイルを新たにコピーすることをお勧めします。
- 英語、ドイツ語、イタリア語、ポーランド語、日本語のファイルが、最近アップデートされたことにご注意ください。その他の言語ファイルを使用すると、あなたのGeeklogサイトがきちんと動かない場合があります。
寄稿者: Gene Wood、 Blaine Lang、 Tom Willet、及び Roger Websterが本リリースに寄稿いたしました。