Concrete CMS を構築する方向けの推奨設定の紹介ページです。
Concrete CMS公式サイト(英語)より翻訳しています。
この情報はver.9 向けです。ver.8 向けの情報はこちら(英語)をご覧ください。

 

サイト構築と具体的なCMSのハード化

開発者の皆様へ:コードが安全であることを確認してください。セキュリティの概要(英語)を参照してください。

以下は、サイトの準備とセキュリティに関する包括的なチェックリストです。
CMSセキュリティのベストプラクティスと一般的なポインタを組み合わせたものです。私たちはCMSを専門としていますので、サーバー固有の設定については、Webサーバーのベストプラクティスを参照することをお勧めします。

 

CMSチェックリスト

  1. ダウンロードとインスール
  2. サーバーと言語
  3. サイトの開発とセキュリティ
    • Web アプリケーションセキュリティに関する推奨事項が開発中に順守されたことを確認してください。もしそうでなければ、セキュリティの概要を再確認してください。
  4. CMS 管理画面での設定
    • 本番サイトの開発デバッグ出力をオフにします:/dashboard/system/environment/debug
    • 「Password reset poisning(パスワードリセットポイズニング)」を防ぐためにカノニカルURLを設定します。
    • リダイレクトがカノニカルURLと一致していることを確認してください。
    • TLS/HTTPSでのみレンダリングする(英語)ようにサイトを設定します。
    • ファイルのアクセシビリティを決めます。プライベートの場合は、サイトルート外の保存場所を設定します。アップロードしたファイルに一般にアクセスできるようにするかどうかを決定します。
    • デフォルトのパスワードのセキュリティ設定を確認し、必要であれば変更してください。:パスワードの必須条件を設定する
    • 特権管理者用(admin)のパスワードが長く、複雑であることを確認してください。
    • 訪問者を既知のIPアドレスを制限するか検討します。その場合は、IPアドレスのブラックリスト/ホワイトリスト を設定します。
    • フォーム送信確認用の「差出人」メールをカスタマイズします。
    • 役割とアクセス制御のために特定のユーザーグループを割り当てます。
      可能な限り、必要最小限の権限を持つグループを設定します。例えば、コンテンツ編集者は、管理画面のすべてにアクセスできる管理者として設定するべきではありません。
    • サイト全体の閲覧許可と編集アクセスを調整します。:(簡易権限モードの場合)dashboard/system/permissions/site、(上級権限モードの場合)各ページ・エリアの権限設定
    • ファイルアップロードで許容されるファイルの種類を設定します:dashboard/system/files/filetypes
    • 自動ログアウトの条件を設定します:dashboard/system/registration/automated_logout
  5. ファイルアップロード
  6. バージョンとアップデート
    • Header Respons でCMSのバージョン番号を隠しています。
    • Composerのインストールに関する推奨事項に従ってください。
  7. 企業システム
    • ウェブサイトとCMSを組織のシステムリストに追加します。役割ベースのアクセス制御を確実にします。

 

考えるべきポイント

  • Concreteログインを組織のSSOと統合します。ConcreteはデフォルトでGoogle SSOをサポートし、oAuthとSAMLはマーケットプレイスで利用可能です。
  • 特定の非アクティブ期間またはログイン失敗後にユーザーを非アクティブにすることを検討してください(ログインセキュリティの設定):​dashboard/system/registration/deactivation

 

ローンチ前にはテストする

  • 特にCMSのバージョンアップ後のサイト機能の確保します。
  • 負荷テストを実施しましょう。
  • ウェブアプリケーションスキャナーを実行しましょう。
  • ブラウザのコンソールエラーをチェックしましょう。
  • デフォルトの "from "メールが "no-reply@[サイトドメイン]"であることを確認してください。
  • favicon を追加しましょう。
  • トラッキングコードを実装しましょう。
  • サイトがCNAMEとAレコードの両方に応答することを確認してください。

 

独立したホスティングですか?

  1. 一般設定
    • コア Concrete CMSチームとのホスティング、もしくは弊社のサービスをご検討ください。
    • TLS 1.2以上を利用し、HTTPをHTTPSにリダイレクトします。
    • HSTSを設定します。
    • CDNを導入し、キャッシュを最適化します。
    • 利用可能なツールを使ってサイトを監視します。
  2. Webサーバーの設定(Nginxなど)
    • ​​​​​​​xframeセキュリティ・オプションを設定します。
    • application/files から静的にファイルを提供します。
    • コードの実行を制限します。
    • ディレクトリの参照を無効にします。
    • 電子メール送信のためのSMTPを設定します。
    • レート制限を導入します。
    • ロギングを設定します:dashboard/system/mail/logging
    • 9.3.6以前のConcreteを使用していて、キャッシュページのセキュリティヘッダを設定したい場合は、Apacheの場合は .htaccess、nginx の場合は config で手動で設定する必要があります。
  3. セキュリティ​​​​​​​
    • キャッシュをアクセス可能なディレクトリの外に保存します。
    • Webアプリケーションファイアウォール(WAF)を設置します。
    • CMSのバージョンが9.0.0以下の場合、Cross-Origin-Resource-Policyヘッダを設定します。ガイドはこちら
    • アップロードされたファイルを安全に配信させます:application/files/*.

常にセキュリティを優先してください。疑問があれば専門家に相談しましょう。