【重要なお知らせ】Ver.2.11 から校正オプションの仕様が変更になります


これまで 1.0 - 2.10.x まで校正オプションがついていると escape しないという仕様でした。

これにより {text}[nl2br] などをお問い合わせフォームに書き escape を忘れてしまうこと でカスタマイズする際に、脆弱性を作り込んでしまうことが多く発生 しておりました。

2.11 からは、この長くからの仕様を変更し、校正オプションがあったとしても無かったとしてもどちらも、どの場合であっても基本的には変数は escape して表示することになりました。

{text}[nl2br] と書くだけで大丈夫になりますが、逆に管理画面からHTMLタグを入力しているようなカスタムフィールドなどは {text}[raw] と書かないと HTML タグがそのまま表示されるようになります。

アップデートの際にはご注意が必要になりますので、


Ver.2.11から、セキュリティ対策としてXSS(クロスサイトスクリプティング)を防止するため校正オプションを指定していた時もエスケープ処理が自動で行われるようになりました。これにより、一部のカスタムフィールドなどの変数の表示に不具合が出る可能性があります。

概要

以前まではお問い合わせフォームに エスケープ処理を忘れてしまうこと が理由となり、カスタマイズする際に脆弱性を作り込んでしまう問題 が多く見られました。同じような問題が発生しないようにするため、対策としてすでに校正オプションが適用されていた場合もエスケープ処理をする仕様に変更となりました。

これにより校正オプションが1つでも提供されている変数にHTMLの記述があった場合、HTMLの記述が文字列として表示されます。カスタマイズされている一部のサイトにはお手数をおかけいたしますが、ご理解のほどよろしくお願いいたします。


例:校正オプションnl2brを適用した変数に起こる現象


具体的な問題の解説

Ver.2.10以前までの記述

以前から変数に対して自動でエスケープ処理が行われていましたが、お問い合わせフォームなどで1つ以上校正オプションを適用している場合は、XSS(クロスサイトスクリプティング)対策をするためパイプで繋げて別途エスケープ処理をする必要がありました。ですが、実際にはエスケープ処理をする校正オプションを適用し忘れているサイトもあり、問題になることがありました。

エスケープ処理をした記述例:

<p>{text}[escape|nl2br]</p> <!-- nl2brと合わせて使用するときの記述 -->
<div>{text}[escape|markdown]</div> <!-- markdownと合わせて使用するときの記述 -->

Ver.2.11以降の変更

そこで、Ver.2.11からは1つ以上の校正オプションが適用されていても、自動でエスケープ処理が行われるようになりました。お問い合わせフォームで利用する際は、下記の記述例のように1つの校正オプションで済むようになります。

<p>{text}[nl2br]</p> <!-- nl2brと合わせて使用するときの記述 -->
<div>{text}[markdown]</div> <!-- markdownと合わせて使用するときの記述 -->

問題が起こるケース

一方でVer.2.11以降では、カスタムフィールドにHTMLなどのソースコードが記述されていると、ソースコードが展開できないように特定の文字が実体参照に変換されてしまいます。(例:「<」、「>」、「&」、「"」など)

以下の箇所で影響が出る場合があります。

  • カスタムフィールド
  • カスタムユニット
  • 拡張ユニット
  • そのほか変数を利用している箇所

防止するためには、アップデートをする前に、校正オプションを適用していてHTMLの記述を要する変数には[raw]校正オプションを適用してください

記述例:

<p>{text}[raw|nl2br]</p> <!-- nl2brと合わせて使用するときの記述 -->
<div>{text}[raw|markdown]</div> <!-- markdownと合わせて使用するときの記述 -->

校正オプションの記述方法についてはリファレンスをご覧ください。

ご不明な点があったときは

この件についてなにかご不明な点がございましたら、お問い合わせフォームまでご連絡ください。

日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。

スタンダードライセンスで運用中のシステムの安全なアップデート方法

時下ますますご清栄のこととお慶び申し上げます。平素は格別のお引き立てを賜り、厚く御礼申し上げます。

新しいライセンスの追加とライセンスの価格改定に関するお知らせ」の記事でもお知らせした通り、スタンダードライセンスでVer. 2.11以降へマイナーバージョンアップされたときバージョンアップ費用が必要になりました。(マイナーバージョンアップとは、Ver.2.10からVer.2.11にアップデートするような、小数点第2位の数字のバージョンアップを指します。マイナーバージョンは、後方互換性があり機能性を追加した場合にバージョンが上がります。)

本記事では、スタンダードライセンスで運用中のシステムの安全なアップデート方法についてお知らせいたします。

バージョンアップ費用について

バージョンアップ費用は、1回10,000円(+消費税)となっており、アップデート期間延長オプションを購入いただいてから1年間有効です。 アップデート期間延長オプションの有効期限内であれば、マイナーバージョンアップを何度でも行なっていただけます。

バージョンアップ費用が必要になる場合

  • Ver.2.10.x→Ver.2.11.x、Ver.2.8.x→Ver.2.11.x、Ver.1.7.x→Ver.2.11.x のアップデートの場合
  • Ver.2.11.x→Ver.2.12.x のアップデートの場合

バージョンアップ費用が不要の場合

  • Ver.2.8.x→Ver.2.10.x、Ver.1.7.x→Ver.2.10.x のアップデートの場合
  • Ver.2.11.0→Ver.2.11.1 のアップデートの場合
  • Ver.2.11.xを購入してから、半年以内にVer.2.12.x へアップデートする場合

安全なアップデートの手順

安全にCMSのバージョンをアップデートをしていただくために、順番としてはアップデート期間延長オプションを購入してからアップデート作業を行うことを推奨しています。

購入前にアップデート作業を行うと、ライセンスが一時開発ライセンスとなり、運用中のサイトで開発ライセンスで運用中であることを知らせるアラートが表示されたり、noindexとなってしまう危険性があります。

必ず購入してからアップデート作業を行うようにしてください。

1. アップデート期間延長オプションの購入方法

まず、マイページの所有ライセンス一覧に移動します。(※マイページに要ログイン)

一覧からバージョンアップしたいサイトを探し、オプション項目の「購入」ボタンをクリックし、オプション購入ページへ移動します。



オプション購入ページに移動したら、「アップデート期間延長」項目を選択します。バージョンアップ費用は、1回10,000円(+消費税)となっています。

購入手続きを完了したら、再び マイページの所有ライセンス一覧へ移動します。

一覧からバージョンアップしたいサイトを探し、license.phpをダウンロードします。ダウンロードしたlicense.phpは、CMSを設置しているサーバーにアップロードし、すでに設置されているlicense.phpを上書きしてください。

2. アップデートの操作方法

/private/config.system.yaml をテキストエディタで開きます。そして、ファイル内に以下の記述を追加します。

system_update_repository  : https://www.a-blogcms.jp/api/update-211.json

設置したサイトのCMSにログインし、管理画面に入り、「更新」ページに移動します。

「今すぐ更新」ボタンをクリックして、自動アップデートを開始します(「今すぐ更新」ボタンが表示されていなかったら、「もう一度確認する」ボタンをクリックしてください)。



更新ページに再度アクセスして、「インストールバージョン」が最新バージョンになっていたらアップデート完了です。

【重要】Ver.2.11以上にアップデートするときは校正オプションにご注意ください

Ver.2.11から、校正オプションのしようが変更されております。Webサイトの表示にも関わる修正となっておりますので、アップデートの際はご確認のほどお願いいたします。

ご不明な点があったときは

この件についてなにかご不明な点がございましたら、お問い合わせフォームまでご連絡ください。

日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。

脆弱性が発見されました

a-blog cms で利用しているライブラリに脆弱性が見つかりました。
影響範囲にあるバージョンをご利用の方は、大変お手数ですが以下対応をお願いいたします。

影響範囲

  • 2.10系: Ver. 2.10.23 未満のバージョン
  • 2.9系: Ver.2.9.26 未満のバージョン
  • 2.8系: Ver.2.8.64 未満のバージョン
  • 2.7系: 全てのバージョン

内容

使用しているPHPのライブラリにXSS脆弱性があり、このライブラリの該当ファイルに直接URLでアクセス(CMSを通さないアクセス)されると、JavaScriptが実行できてしまいます。

参照: JVN#10377257

対応方法

php/vendor/pear/http_request2/tests/ ディレクトリの削除をお願いいたします。このディレクトリ内にあるファイルは、CMSでは利用していませんので削除しても動作に影響はありません。

php/vendor/pear/http_request2/tests/ のディレクトリを削除いただければ、特にCMSのアップデートは必要ありません。

この度はご迷惑をおかけしてしまい大変申し訳ございませんでした。
今後ともa-blog cmsをよろしくお願いいたします。