Geeklogメンテナンス中の .htaccess

Geeklog
投稿者: 表示回数6,271 印刷用ページ

どのURLにアクセスしてもブラウザに表示されるURLはそのままでGeeklogメンテナンス中を示すページを表示します。しかも、HTTPレスポンスコード503(過負荷/メンテナンスで一時的に利用不可)が返るので、検索エンジンに対しても一時的なメンテだと理解され、メンテナンス画面がインデックスされることはありません。

管理者が使っている一部のIPアドレスからのアクセスに対してはメンテ中を表示せず通常の処理/表示をします。

Geeklog日本語版では、メンテ中画面を出すページは日本語化プラグイン(Japanize)が提供している /japanize/disabledmsg.html が用意されているので、これを表示します。

設定方法

.htaccess(またはhttpd.conf)に以下を追加します。

ErrorDocument 503 /japanize/disabledmsg.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/japanize/disabledmsg.html
  RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX
  RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX
  RewriteRule ^.*$ - [R=503,L]
</IfModule>
※ RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX ここに開発者側のIPアドレスを列記。

Geeklogとロゴの由来

Geeklog
投稿者: 表示回数5,444 印刷用ページ

[lightbox:/images/library/Image/geeklog/logo/geeklog-purple.png width:300 height:auto]

Geeklogの特長:

オープンソースソフトウェア関連の法的問題に関わる情報を発信し続け数々受賞してきた有名な法律ブログGroklaw(http://www.groklaw.net/)は世界的に有名であり、このサイトで活用されている。統制がとれた開発体系、明快な関数の命名規則や整理されたソース構造、充実したプラグインライブラリが特徴。jQueryを多用したビジュアルな旅行サイトなどにも活用。

開発者:
http://wiki.geeklog.net/index.php/Who_made_Geeklog%3F
2012年、日本人コミッター2名(mystral-kk, Dengen)誕生。

開発の経緯:

SecurityGeeksとNewsGeeksというサイトのために開発され、GPL ver.2で公開。 テンプレートのコードはLGPLのPHPLibから。

Geeklogは、Jason Whittenburgによって書き下ろされた後、オープンソースコミュニティによってプロジェクトが進んでいる。Geeklog の現在のメンテナーは Dirk Haun。

ロゴ:

Wikiに簡単ながら紹介されています。

http://wiki.geeklog.net/index.php/Geeklog_logo
Geeklog開発者のSimon Lordによる。Creative Commonsライセンスで配布。フォント部はAdobe商用フォント"VAG Rounded Black"。

画面がまっしろ。サイトがエラーになったときの対処法

Geeklog
投稿者: 表示回数16,232 印刷用ページ

Geeklogの場合は、以下の手順でサイトのエラーを表示して復旧させます。

  • php.iniでPHPエラー表示モードに変更します。
  • Geeklogのエラーログ /logs/error.logとサーバーのログを確認します。
  • Geeklogの管理画面にログインできる場合はCacheクリア。あるいはサーバーのcache用ディレクトリ(data/layout_cache/, data/layout_css)のcacheファイルを削除
  • Geeklogのsiteconfig.php に、以下の1行を追加して、デバッグモードにします。
    $_CONF['rootdebug'] = true;
    これでログインしていなくてもPHPエラーが表示されるようになります。
  • どこでエラーが発生しているか詳細な関数の実行経緯が表示されるので解析。
    原因に応じて、/admin/install/rescue.php(緊急レスキューツール) を実行してプラグインを無効にするなど。rescue.phpでたいてい解決します。

    [lightbox:/images/library/Image/geeklog/rescue/geelog-rescue.png width:auto height:250]

  • DBへの接続情報は、db-config.phpです。

Geeklog テーマエディタ―を編集してパンくずリストを表示する

Geeklog
投稿者: 表示回数5,096 印刷用ページ

テーマエディタ―を活用すると、テーマの編集から画像のアップロードまでできます。

1. Plugin Admin - install Themedit

[lightbox:/images/library/Image/geeklog/themedit/geklog_plugins_admin.png width:auto height:250]

プラグインのインストール順にプラグインが処理されます。依存されているプラグイン(日本語化プラグインやDataProxyプラグイン)は上位に配置してください。

日本語化プラグインは、日本語メールを利用するすべてのプラグインが依存しています。

DataProxyプラグインは、Sitemap Calendarjp プラグインが依存しています。

Geeklog DataBox Msater data

Geeklog
投稿者: 表示回数7,215 印刷用ページ

DataBoxのアトリビュート(Attributes)のタイプ(type)には、マスター(Master)を別途登録(regist)してそれを参照して作成するリスト(List)があります。

マスター(Master)で、種別を Country にして、各国のなまえ(Country name)、コード(code)などを一式登録(regist)します。その次のアトリビュート作成画面(Attributes admin)で、マスター(master) 「Country」を参照したリスト(List)を、テーマ変数(Theme variable)「country」で作成します。作成するデータのタイプのアトリビュート(Attributes)に登録。データ(create data)を作成します。

1. Create master for list attribute

[lightbox:/images/library/Image/geeklog/databox/geeklog_databox_master_create.png width:auto height:250]

DataBox plugin sample data を公開

Diary
投稿者:ゲストユーザー 表示回数7,712 印刷用ページ

DataBox plugin sample data を公開しました。

download:
https://www.ivysoho.net/downloads/index.php

demo:
https://www.ivysoho.net/databox/category.php

[lightbox:/images/library/Image/geeklog/databox_admin.png width:300 height:500]

同梱されているcustomディレクトリを、/plugins/databox/custom/ にアップロードしてください。
同梱されているSQLを、最新のDataBoxプラグインをインストールしたあと、実行すると、動きます。

DataBox (UserBox) download:
https://bitbucket.org/tsuchi/box/downloads branch - download - zip gz bz2

English document:
https://www.ivysoho.net/downloads/index.php/1

SEOを意識した美しいURLの生成

Geeklog
投稿者:ゲストユーザー 表示回数7,675 印刷用ページ
URL生成はGoogleの評価対象の1つであると言われていますが、美しくルール化されたURLで生成されたサイトは管理しやすいので最初からURLのルールを意識して運営します。

Geeklogでは、記事、静的ページなど通常、生成するコンテンツはIDを指定します。

このIDの生成時に気を付けることは、

1.すべて小文字にすること
2.キーワードを含めること
3.複数キーワードで検索を狙いたい場合は、ハイフンでつなぐ
Googleはハイフンの利用を推奨しています。区切りにアンダーバーを使いません。アンダーバーを使えば、前後それぞれ繋げて1つと認識されます。

Geeklogの多言語切り替えの場合、同じコンテンツを多言語で用意する場合に、IDの最後に言語ID_ja _en _ko _zh などを追加します。

URLの生成で美しいのが、Geeklog本家サイトです。

事例:
http://www.geeklog.net/article.php/groklaw-shutting-down
http://www.geeklog.net/article.php/summer-of-code-2013-students
http://www.geeklog.net/article.php/geeklog-2.0.0
http://www.geeklog.net/article.php/geeklog-1.8.2
http://www.geeklog.net/article.php/geeklog-1.8.0

投稿記事は、投稿者はURLを指定できず、自動生成URLなので、以下のようなURLになります。
http://www.geeklog.net/article.php/2013062908235210

ロリポップ!WordPress利用サイトで不正アクセスによる改ざん被害の考察

Diary
投稿者: 表示回数4,180 印刷用ページ
ロリポップ!WordPress利用サイトで不正アクセスによる改ざん被害は深刻な被害をあたえています。

http://lolipop.jp/info/news/4149/

引用:
“本件の改ざんは、WordPressの設定ファイルであるwp-config.phpからデータベース接続に必要な情報を抜き出して情報を書き換えられたもので、それ以外のデータに影響はございません。先般お知らせしておりました、データベースのパスワード変更はこちらに関連するものです。重ねてご報告いたします。”

この案内によると、脆弱性を衝かれてWordPressの設定ファイルであるwp-config.phpが取得されてDBの情報を書き換えられたもの、とありますが、DB内にはユーザーの情報が含まれており、アカウントのメールアドレスなどの個人情報が抜き出されていてもおかしくない状況です。

ロリポップ!は非公開領域の利用を許していないので、非公開領域に本体ソースをアップロードしてよりセキュアに運営可能なGeeklogは、十分にセキュアに運営できないため、ロリポップ!を非推奨としてきました。

そのため、Geeklogの利用は少数で被害もまだ聞こえてきませんが、すべてのCMSにおいて、脆弱性の対策としてパスが変更されたことで、サイト復旧対応が必要となっています。

改ざん手法は「WordPressのプラグインやテーマの脆弱性を利用」とありますが、考えられる脆弱性のひとつとして、timthumb.phpが考えられます。

http://blog.vaultpress.com/2011/08/02/vulnerability-found-in-timthumb/

最終体な対策が完了したと言われている2.8.2(Revision:r187)がリリースされたのは2011年10月13日です
https://code.google.com/p/timthumb/source/detail?r=187

※以下の記事では10月17日とありますが、実際にコミットされたのは13日です。
WordPressプラグインなどで利用されているTimThumb.phpの脆弱性について
http://did2memo.net/2013/05/31/timthumb-php-vulnerability/

WordPressに限らず、timthumb.phpを活用しているCMSはバージョンを確認する必要があります。

CMSは、便利な面がある反面、攻撃を受けやすい面があります。常にセキュリティメンテナンスを行って、最新のバージョンで運用すること。最新のバージョンで運用できるよう本体ハックをしないこと。カスタマイズは本体をハックして行わず、かならずアドオンで機能追加することが大事です。

CMSは、様々なアドオン手法によってカスタマイズする設計になっています。本体をハックしなければ運用できないCMSは、未熟なCMSともいえるでしょう。

ハックしなくても実際の運用に耐えうるよう、本体の開発およびアドオンの開発に協力していくことが将来にわたってセキュアにOSSを活用するコツです。

WordPressでないからと安心することなく、すべてのCMSにおいて、運用者が気を引き締めなければならないでしょう。


Geeklog OSS Japan サイトのカスタマイズ

Geeklog
投稿者: 表示回数3,883 印刷用ページ

OSS JapanはGeeklogを活用しています。

[lightbox:/images/library/Image/geeklog/geeklog_ossj.jp width:300: height:auto]

活用しているプラグイン

Geeklogプラグイン: DataBox, UserBox

DataBoxプラグイン

http://www.ossj.jp/databox/category.php/oss/gcode
カテゴリ表示

カテゴリ表示 テーマデフォルト

http://www.ossj.jp/staticpages/index.php/databox_category_alloss
このページに記載している自動タグ:

[databox:category category_code:alloss]
カテゴリ表示 テーマ指定

ユーザー参加状況グラフ
http://www.ossj.jp/staticpages/index.php/databox_category_alloss_list
このページに記載している自動タグ:

[databox:category category_code:alloss templatedir:list]

UserBoxプラグイン

プロフィールを編集する

http://www.ossj.jp/userbox/myprofile/profile.php (要ログイン)

Groupに自己参加

http://www.ossj.jp/userbox/myprofile/securitygroup.php (要ログイン)
先頭_(アンダーバー)のGroupに、参加者が直接登録。これで目的のOSSを直接編集できます