タグ検索:a-blogcms

今回はa-blog cmsの「クライアントキャッシュ有効時間」の話です。
こちらも先日の「a-blog cmsの日」で教えてもらったのですが、a-blog cmsでブラウザのキャッシュの有効期限を設定し、サーバへのアクセス負荷を減らすというものです。

公式な説明によると…

サイトを閲覧している端末のクライアント(ブラウザ)のキャッシュの有効時間です。この時間内はクライアント側のキャッシュが使用されサーバにアクセスしません。そのためページが更新された場合にも反映されないことがあります。ブラウザの再読込ボタンを押したり、キャッシュを消去しないとページが切り替わらないことがあります。

という事です。
ブラウザのキャッシュなので、一旦キャッシュすると指定した秒数が経つまでブラウザのキャッシュを利用します。そのため更新してもすぐに画面に反映されないので、運用に合わせて秒数を設定するという感じです。

設定はコンフィグの機能設定にある「クライアントのキャッシュ有効時間」に秒数を設定するだけなので簡単です。

クライアントのキャッシュ有効時間を設定する


a-blog cmsの特徴として、ログイン・非ログインに関わらず同じURLでページにアクセスしますので、キャッシュが効いているとページの変化が反映されない場合があります。また、公開したエントリーが即座に反映されない場合もあります。このキャッシュ機能を使う場合は、サイト管理者側が理解をしていないとダメな気がしますから、運用側でしっかり把握しておく必要があると思います。

ただ、キャッシュのメリットは大きいので、少しでもサイトのパフォーマンスを上げたい方にぴったりの機能だとお思います。ちなみにページの更新状態にシビアな条件がなければ「120秒位で運用すると良い」というお話でしたが、仮に120秒が厳しい場合に15〜30秒程度で設定しても効果があるという事でした。

現状このサイトは120秒で運用していますが、サイト管理者が理解していれば、120秒程度のキャッシュのデメリットは感じられません。こちらはオススメ機能のひとつですので、ぜひ一度試してみてください。


先日参加したa-blog cmsの日(a-blog cmsの勉強会)でコンテンツセキュリティポリシー(CSP)の話がありました。
とても参考になるものでしたのでブログに残しておこうと思います。

コンテンツセキュリティポリシーを簡単に説明すると、設定されたドメイン環境以外のデータは無視することで、未知なる脅威からサイトを守るというものです。改ざんにあった際にも、コンテンツセキュリティポリシーを設定しておく事で、外部ファイルが実行できず被害を最小限に食い止めることが可能かもしれません。

a-blog cmsでは、「private/config.system.yaml」に設定をすることで実装可能ということでした。

//デフォルトはoff
content_security_policy : off # default-src 'self'; script-src 'self' | off

例えば、サイトのドメインのみデータの実行が可能にするためには下記の様に設定します。

//すべてのコンテンツをサイト自身のドメイン (サブドメインを除く) から取得
content_security_policy : default-src 'self'

この場合、他サイトのデータは実行されなくなりますので、別のサーバに置かれているjsや画像などは全て無視されます。

読み込み先にドメインを設定すれば、サイトのドメインに加え指定されたドメインの画像やjsなども実行することが可能になります。

//コンテンツをサイト自身のドメインと設定されたドメイン(sample-hp.com)から取得
content_security_policy : default-src 'self' *.sample-hp.com

例ではサイトのドメインに加え、外部ドメイン(*.sample-hp.com)のデータが読み込める様になりました。

また、SSLを指定することで暗号化した通信のみを許可する事も出来るようです。

//コンテンツをサイト自身のドメインと設定されたドメイン(www.sample-hp.com)からSSLでのみ取得
content_security_policy : default-src 'self' https://www.sample-hp.com

細かい設定は要件に合わせて追加していく様で、「script-src」「style-src」「img-src」などで、読み込むファイルの種類ごとに指定をすることも出来ます。

ただし、今どきのサイトの多くがSNSや地図APIなど外部サイトの機能に依存しているので、すべて設定するのは結構大変かもしれません。また、jsのインライン記述には基本的には対応しておらず、どうしてもインラインで書かなくてはならない場合は、ハッシュをつけるなどで対応する様です。

実際の作業としては、まずサイトのドメインだけを許可し、あとはソースやコンソールなどで表示される情報を確認しながら、読み込み可能なドメインを追加していく感じになると思います。
細かく複数のファイルを読み込むものも多いので、それなりの工数はかかりそうな気がしますが、これでリスクを減らせて安心できるなら、頑張って実装するのも良いかもしれません。


まずは、「Zoho CRM 勉強会」よりも以前から参加している「a-blog cms勉強会」で、少しだけZohoの説明を聞いてきました。
a-blog cmsを開発しているアップルップルさんは、Zohoインドとパートナー提携をし、a-blog cmsとの連携もできるようにしていますので、今回はアップルップルさんでの具体的な活用方法を画面を見ながら教えていただきました。

Zohoならびに、Zoho CRMとは

Zoho CRMは、オンラインビジネスアプリケーション Zohoサービスの1つであり、Zohoには、様々なアプリケーションが準備されてされています。
詳しくは、Zohoサイトへ

  • 営業やマーケティング支援をするサービス
  • メールを利用したコミュニケーションツール
  • 会計を効率化するサービス
  • ヘルプデスクといった顧客対応のサービス

など、種類豊富です。

必要なアプリを選んで契約することも可能ですが、それぞれに月額契約が発生すると費用はやりたいことが多岐にわたる場合は、複合パッケージで契約する方がランニングを抑えることができそうです。

弊社には、どのアプリが必要か

様々なアプリのなかで、具体的に利用したいアプリを選定し、契約プランを考えていこうと思います。

やりたいことを書き出してみる

  • ローカルなどで運用している顧客管理を、一元化したい
  • Webサイト(自社サイト、ブランドサイト、ショップサイト)の顧客をもっと分析し、活用したい
  • 収集した顧客データを活用し、Webサイトのさらなるマーケティングに役立てたい
  • Web制作事業と平行して、オリジナルブランドの顧客運用も管理したい
  • オリジナルブランドはSNSを利用しているので、もっと上手く活用して顧客に取り込みたい

どのアプリが利用できるか

顧客管理 → CRM

顧客の管理、Webフォームとの連携、顧客へのメール配信管理

Webサイトの分析、活用 → Salesiq、Campaigns

Salesiq:サイト訪問者の追跡と把握からCRMへ見込み客の連携
Campaigns:CRMから連絡先の連携、メルマガ配信管理、配信の自動化

オリジナルブランドの運用 → CRM

購入者情報の管理、顧客情報項目の追加による分類や分析など

SNSの活用 → Social

Twitter、facebook、Instagrumなどとの連携、配信管理、広告連携、フォロワー分析、モニタリング

弊社が今やりたいことでアプリを探して行くと、複数のアプリが必要になってくることがわかりました。
また、「顧客管理」だけでなく通常の業務に使えそうなアプリもたくさんあります。

通常業務でも使えそうなアプリ

  • Survey:リアルタイムアンケート集計
  • Forms:Webフォーム管理
  • Desk:カスタマーサポート、ヘルブデスクツール
  • Books:請求管理
  • Inventory:商品管理(在庫管理)
  • Invoice:見積書、請求書、支払い管理
  • WorkDrive:オンラインファイル管理(組織向け)
  • Docs:ファイル共有(個人向け)
  • Writer:文書作成ツール
  • Sheet:表計算ツール

まずはお試し運用をしてみる

Zohoの有料アプリは、15日〜30日のお試し期間があるので、アカウントを取得し試してみることにしました。
まずは、社内で一番興味があった、「Zoho Social」を試してみようと思います。

次回のコラムで、「Zoho Social」について詳しく書いてみます。


XSERVERのXアクセラレーター Ver.2が、Ver.2.1にバージョンアップしたようです。

Xアクセラレーターの設定は、「OFF」「Ver.1」「Ver.2(Ver.2.1のこと)」の3つから選べますが、
公式サイトの情報によると、

  • Ver.1:静的ファイルの高速化と同時アクセス数の拡張が行われます。
  • Ver.2:「Ver.1」の特徴に加えて、PHPプログラムが高速化されます。

普段はVer.1を使っていますので、新しくなったVer.2をa-blog cmsで試してみようと思ったのですが、残念ながら「ioncube loader」の部分でエラーになりました。

Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. Please visit get-loader.ioncube.com for install assistance.

エラーの内容的には「ioncube loaderをインストールしてください」という感じですが、すでにPHPに合わせたものが設置済みで、Xアクセラレータ Ver.1では動作しています。もしかしたらVer.2では「ioncube loader」自体が使えないのでしょうか。

でも「PHPが従来の10倍以上高速!」とか聞くと、どうしても使いたくなります…。
Ver.2の方はPHPの設定も制限があるようですが、何とかして動かす方法ないんでしょうかね。
ひとまずVer.1を継続ですが、今後に期待したいと思います。

2019/8/2 追加:
現在この件についてXSERVERに問い合わせ中ですので、また返答あり次第報告したいと思います。

2019/8/6 追加:
XSERVERより返答いただきましたが、Xアクセラレーター Ver.2はphpの設定により、ioncube loaderは動作不可という事でした。現時点ではver.1を利用してくださいとのことです。ただ、ユーザーからの要望という事で、今後の検討材料にはしていただける様です。非常に丁寧な対応をしていただけたので、今回の結果は残念でしたが好印象でした。今後に期待したいと思います。

先日の「簡単に出来る a-blog cms のセキュリティ強化方法」の時にも少し出ましたが、今回はWAF(Web Application Firewall)の話です。

最近はクラウド型や、サーバに付属で提供されているものが多く、手軽に使えるものがありますので、出来るだけ多くのサイトに導入したいと思っています。
しかしその反面、CMSでは更新時に誤検知してエラーになるなど、運用でネックになる場合があります。まだサイト運営者が把握していれば良いんですが、知識がない方だとトラブルの元にもなったり…。

そんな悩ましいWAFですが、サーバによっては大丈夫だったりもしますので、a-blog cmsで使えるところを見極めたい。

まだXSERVERとCPIのWAFしか使ったことがないのですが、今までの経験ではXSERVER(X10系)は誤検知は少なく、CPI(シェアードプランACE01)は頻繁にエラーが出る印象でした(個人的な見解です)

ということで、CPI(シェアードプランACE01)を使う時は、WAFはOFFで考えていましたが、今回調べる中でCPIのWAF設定方法(CPIオンラインヘルプ:特定シグネチャの除外方法)をオフィシャルのヘルプで見つけましたので、メモしておきます。

方法はとても簡単で、.htaccessに記述するだけです。

#特定のIPを指定して除外する方法
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)
</IfModule>

「ip(xxx.xxx.xxx.xxx)」のxに作業環境のIPを入れます。
ここで設定したIPの時にだけWAFをOFFにしますので、IPは固定である必要があります。
複数IPの場合は3行目の内容「SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)」のIPを変えて、下に1行追加すれば大丈夫みたいです。
決められた環境からしか更新しない場合で、外部からの投稿がないサイトはこれでOKな気がします。

また、検出されたシグネチャ毎に除外を設定する方法もある様です。

#特定のシグネチャを指定して除外する方法
<IfModule siteguard_module>
SiteGuard_User_ExcludeSig signature1,signature2
</IfModule>

この場合、検出されなくなる反面、この部分は機能しませんのでセキュリティ面からみると微妙ですよね…。
サイトに外部から投稿されるものがあり、仕方なく一部制限を緩和するといった感じでしょうか。

a-blog cmsでWAF搭載の他サーバを使う機会があれば、また調べてみようと思います。
WAFはクラウドサービスも沢山ありますし、まだまだ勉強中なので、また何か良い情報があったら書きたいと思います。