日曜日, 11月 15日, 2015

スパムコメントとの戦い(1/2)

本業が忙しく、なかなかネタがアップできず、気が付けば8カ月もブログ放置していました。
本業の忙しさは相変わらずでなかなかネタが見つからないのですが、この放置の間にネタが転がっていました。
このブログのコメント欄に膨大なスパムコメントがついていたのです。
一日10件以上のコメントが付いて、総数300以上でした。
これはなんとかしなけりゃいけない。

コメントを一気に消す

コメントを選択して消すなんて面倒くさくてやっていられません。
直接コメントファイルの削除をしました。
FlatPressインストール先のfp-contentの下に西暦の下2桁のディレクトリ、その下に月2桁のディレクトリ、その下にエントリごとのディレクトリがあります。
エントリごとのディレクトリの下の「comments」ディレクトリは以下のファイルを削除すれば、コメントはきれいに消えてくれます。

スパム対策

対策としていくつか方法を考えました。

  1. パスワード・画像認証を導入する
  2. コメントを承認で公開するようにする
  3. IPアクセス制限

Flatpressのプラグインで画像認証導入は特殊なプラグインを入れることもなくできるようなのですが、アクセシビリティの低下が個人的に好きではないので見送りすることにしました。
まずは「コメントをブログ管理者が承認しない限り公開しない」を導入してみます。
「投稿しても表示されないなら、いつかあきらめて消えるだろう」という考えです。
導入したプラグインは
Comment Center v1.1
http://www.pierovdfn.it/2011/06/30/plugin-comment-center-v11-flatpress/
です。(確認するとv1.1.1があるようですが、それはまだ試していません)
残念ながら日本語化はされていません。

ダウンロードしてFlatpressインストール先のfp-pluginsディレクトリに展開します。

FlatPressの管理用ページから「プラグイン」を開きます。
「プラグイン」列にプラグインの名前がアルファベット順に並んでいますので、「Flat Press Comment Center」の「切り替え設定」列の「有効にする」リンクを押します。
他のアンチスパムの併用もできるようですが、私のところはこのComment Centerの承認機能のみ有効にしたいため、「Accessive Antispam」と「Akismet」は「無効」にしました。
「QuickSpamFilter」(いわゆる「NGワード」を登録し、含まれる場合は投稿させない機能のようです)は有効のままですが、設定していないので機能しません。

FlatPressの管理用ページから「ブログ記事」→「Comment Center」を開きます。
「Add a new pollicy」のラジオボタンを選択し、「Apply to」を「All Entries」のラジオボタンを選択し、「Behavior」を「Comments need to be approved」を設定し、「Save Policy」ボタンを押します。
これでコメントは管理者が承認するまで公開されることはありません。
fp20151115_1.PNG

Comment Center導入による効果

結論から言うと、あまり効果がありません。
すぐにコメントが反映されないので、ブログの見た目上キレイになるのですが、やはり相手は自動投稿ロボットのようでお構いなしに投稿してきます。
こまめに管理用ページの「Comment Center」から未承認のコメントを削除すればよいのですが、面倒です。

次回はもっと根本的な対策をしてみます。
(次回に続く)

火曜日, 3月 17日, 2015

FlatPressのレスポンシブ・ウェブ・デザイン化

FlatPress(1.0.2)でブログを立ち上げて、スマホでアクセスしたら、「あら、これレスポンシブじゃないのね。」と思ったのでした。字が小さい~。

レスポンシブ・ウェブ・デザイン(RWD)
パソコンはもちろん、スマートフォンやタブレットでも見やすく表示されるように、単一の画面で対応するデザイン

いまどき、レスポンシブでないのはいけてないと思いました。

FlatPressのWikiにResponsiveのテーマを2つみつけたのですが、ひとつは見た目が黒白反転で見難い、ひとつは動いてくれないので断念。

調べてみたら、あら、デフォルトのテーマのLeggeroが、最新のv2でレスポンシブですって!
ということで、ここからv2を落として、サイトを上かぶせで更新しました。
http://www.marcthibe … style-available.html

これでスマホからアクセスすると、字が自動的に大きくなります。

まだちょっと気に入らない点が。
左のメインのところに合わせて文字を大きくしていて、右スクロールがあるんですよね。
個人的には一列にしたいのです。出来れば、スマホ表示のときのみ。
テンプレートとスタイルシートの改修でなんとかなるかなぁ、と思いつつ、デザインの部分には疎いので、まぁぼちぼちやります。

ちょっコラ(ちょっとコラム)

上記で「上かぶせで更新」と書きましたが、事前にバックアップは万全にしましょう。
システムエンジニアの仕事では、「万が一に何かあった場合、すぐ前の状態に戻せる」を保証した作業が必須です。
「上書きしたので戻せません」は言い訳になりませんので、常に心がけましょう。

日曜日, 3月 1日, 2015

このブログのシステム構築(後編) - 設定もうちょっと

さて、FlatPress、記事を書いたり出来るようになったでしょうか。
この手のシステムは、まぁ、壊れない程度にいろいろやってみて覚えるのがいいです。
ただし、くれぐれも言いますが、他のユーザやサービスに影響が無い程度にしましょうね。

前回までで、セットアップが完了し、記事が投稿できるようになったはずです。
ここでもうひとつ、やっておきたいことがあります。
システムセキュリティに関わる、重要なことです。
いくつかFlatPressの導入に関わるサイトをみてきましたが、インストール、設定、記事を書く、ぐらいまでで、ここまで書いてある記事は少ないようです。
2015/03/21 追記
こちらのサイトが日本語サイトで情報豊富です。美人時計つけるかなー(笑)
http://flatpress.info/

セットアップページを潰す

インストール後、
http://<myserver-url>/flatpress
にWEBブラウザからアクセスしてセットアップを行ったと思います。

そのときのコンテンツが、実はまだサーバ上にあるのです。
http://<server-url>/flatpress/setup.php
をWEBブラウザからアクセスしてみましょう。
fp-setup.jpg
こんな画面が出てきます。
そこには、こんな文言が。

Remember! It’s not safe keeping setup.php and the setup/ directory on your server, we suggest you to delete it!

「setup.phpとsetupディレクトリを削除することを提案します。」
サーバに上のsetup.phpとsetupディレクトリは削除してしまいましょう。

ついでに、

  • docs ディレクトリ
  • CHANGELOG
  • COPYING
  • LICENSE
  • README
  • README.md
  • TESTING

この辺のドキュメント系は削除してしまいましょう。

パスが/flatpressじゃ味気ない

あれ?このブログのパス /flatpress じゃないぞ!
はい。いったん/flatpressに構築して、自分のディレクトリに移動しました。
サーバ上、物理的にディレクトリ名を変えて、管理パネルの設定からパスを
http://www.mucom.net/yasu3156
に変えるだけで動作しています。
パスは/flatpressでなくても問題ないようです。

この先の課題

とりあえず、テーマを変えたりしてみたいと思っています。
FlatPressはWordPressのクローンらしいので、WordPressのテーマやプラグインが使えるとの情報を得ています。やってみたら、ここに書くようにしますね。(2015/03/21 削除 テーマはそのままでは使えませんでした。もうちょっと研究してみます)
それと、ちょっと気に入らないところもあるので、カスタマイズで回避できたらいいなぁ、と思っていますが、それもやってみて、上手くいったら書いていきます。

ちょっコラ(ちょっとコラム)

「セキュリティに関わる重要なこと」と大風呂敷広げてファイルの削除を今回は紹介しましたが、意外とこういう「不要なファイルや設定画面へのアクセスをなくす」作業をやっていないWEBサーバはあります。
酷いところだとApacheのインストール成功のページが表示できたり、管理画面のログイン口が出たりしますね。
外から侵入される可能性があるサーバでお試しの場合でも、そういうところは必ず塞ぐようにしましょう。
セキュリティ診断会社からWEBウェブサイトのセキュリティ診断を受けると、重大な項目として指摘される事項になります。

土曜日, 2月 28日, 2015

このブログのシステム構築(前編) - FlatPressを使用してみる

プライベートのブログはBiglobeさんのを使用していますし、もう引退したネトゲの攻略日記はamebloさんにつくっていました。
またそのようなサービスを利用してもいいんですが、システム屋さんとしては一度自前のブログをCMSを利用してやってもいいかなぁ、ネタにもなるし、ってことで、自前のWEBサイトにCMSを導入してみました。

CMSシステムの選定

Movable Typeは以前自宅サーバにインストールしてみたことがあるので、今回は新しいことをやってみたいのでパス。
世の中はいま、自前ブログと言えばWordPressみたいなのですが、うちのレンタルサーバは、DBが使えないみたい?なので、DBを使わないものがないか探してみました。
ちなみにうちのレンタルサーバはFreeBSDにApache+PHPです。

DB不要 ブログ

でググってみます。
いくつかページが出てきました。
それらをみると、どうやらFlatPressというのがDB不要らしいです。

こちらから入手可能です。
PlatPress » What is FlatPress?
バージョンは本日時点で最新がv1.0.2です。
必要要件はPHPのみ、ってバージョンとか書いてなくって不安ですが(笑)
結果論ですが、うちのレンタルサーバのPHP5.3.3で問題なく動作しております。
PHPは著者、ほとんど通っていない道なので、あまりつっこまないようにお願いします。

それと日本語化のランゲージパックがあるらしいので、それも入手しておきます。
こちらから入手可能です。
http://wiki.flatpress.org/res:language
ここからJapaneseのアーカイブをダウンロードします。

サーバ配置

ダウンロードした本体のアーカイブをWEBサーバに配置します。
ドキュメントルート(以下<document_root>)の下にダウンロードしたアーカイブを置いて、解凍します。
コマンドは自分で調べてください。(不親切)
そのぐらいは(調べることすら)出来ないと、システム屋としてはやっていけません。

<document_root>/flatpress
が出来ると思います。

次に日本語化のランゲージパックを解凍します。
これは上記本体を解凍して出来た
<document_root>/flatpress
に置いて解凍します。
すると
fp-interface
fp-plugins
が展開されます。
各ディレクトリの下(直下とは限りません<fp-plugins)のlangのディレクトリlang.ja-jp.phpというファイルが展開されていればOKです。

何はともあれ動かしてみる

ともあれ、動かしてみましょう。
と、勢いは大事ですが、他の人(同じサーバの利用者など)に迷惑が掛からないように、最低限の配慮はしましょうね。

http://<myserver-url>/flatpress/

にアクセスします。
「FlatPress Installer」というWEBページが出てきたらOKです。

「Next」ボタンを押すと

  • Username(ユーザネーム)
  • Password(パスワード)
  • Re-Type Password(パスワード再入力)
  • Home Page(ホームページ)
  • E-Mail(メールアドレス)

の入力欄が出てきます。
ここで入力する情報は、このCMSシステムの管理者の情報となります。
ホームページはデフォルト表示のままよいです。(インストール先と別にするとどうなるか、は検証していません)
E-Mailはコメントが付いたりしたら通知を送るメールアドレスのようです。
設定したら、「Next」ボタンを押して設定完了です。

長くなった(疲れた)ので日本語化ぐらいまで
「Login Now!」のリンクを押して、いま設定したユーザネームとパスワードを入力して、管理ページにアクセスしましょう。
「Welcome To FlatPress!」と歓迎されます。ありがとう。
画面の右側に、「Admin panel」というリンクがあると思います。
それを押してみましょう。
上から5つめ(下から二つ目)に「Configuration」(設定)というリンクがあると思います。
それを押してみましょう。
ページのタイトルなど設定する項目が出てくると思います。
それは自由に、ご自分で変えてみてください。
重要なのは下半分、「International Setting」の下から二つ目に「Language」があります。
日本語ランゲージパックがちゃんとインストールされていれば、その中に「Japanese(JP)」があると思いますので、それを設定して「Save Changes」ボタンを押しましょう。

パネルが一気に日本語になるはずです。
(細かいところが英語表記残りますけど、ご愛嬌ということで。)

次回は、FlatPressで、もうちょっとセッティングしなければならないところがありますので、それを書きます。

ちょっコラ(ちょっとコラム)

インタネットってのが広まり始めてからもう20年近くになります。
庶民が「ホームページ」とか作っていた時代から掲示板とか作って運用していた人はわかると思いますが、プログラムを動かすためには、「ファイルにウェブアクセスするユーザからの参照権と実行権を与え」なければならないのです。
プログラム、とは、.cgiとか.phpなどのファイルになります。
またFlatPressのように、内部でファイルを書込みする場合、「ファイルを読み書きするディレクトリにウェブアクセスするユーザからの参照権と書込権と実行権を与え」なければなりません。
ここが面倒くさいのですが、多くの場合、レンタルサーバにファイルをアップしたり管理したりするユーザと、WEBサーバに要求があってプログラムを動かすユーザは異なります。
上記手順でページが出ない、とか、エラーログが出力されてちゃんと動かないときは、まずここを疑ってみましょう。
というか、サーバ上でエラーログが参照できる環境であるならば、それを見ればある程度原因がつかめるはずです。