メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Drupal8ホストなりすまし攻撃防止(Host Header Spoofing)と設定方法

Drupal8ホストなりすまし攻撃防止(Host Header Spoofing)と設定方法

drupal
system_management
configuration

Drupal8をインストール後にサイト状態(Site Status)ではエラーがあります

  • Drupal8をインストールして、ホーム >> 管理 >> レポート >> サイトの状態 を確認すると、以下のエラーがあります
    TRUSTED HOST SETTINGS無効
    
    The trusted_host_patterns setting is not configured in settings.php. 
    This can lead to security vulnerabilities. It is highly recommended 
    that you configure this. See Protecting against HTTP HOST Header 
    attacks for more information.

    Trust Host Seetingエラー
  • このエラーの原因はサイトの設定ファイルで「TRUSTED HOST SETTINGS」を定義していないからです

Drupal8のホストのなりすまし攻撃(Host Header Spoofing)防止のため信用ホストを登録する

  • ホストのなりすまし攻撃(Host Header Spoofing)が最近よく見られてきました
  • Drupal8では「symfony trusted host mechanism」の仕組みを利用して信用ホストを登録して、攻撃を防衛します
  • 登録場所はサイトの設定ファイル(drupal/sites/[site-name]/settings.php)で行います

サイトの設定ファイルで信用ホスト名を登録します

  • サイト単位の設定ファイル(drupal/sites/[site-name]/settings.php)を開くと、687行あたりで、信用ホスト登録の説明、サンプルがあります
  • 信用ホスト登録例をコピーして、開発環境、実際に利用するホスト名を正規表現で登録します
      $settings['trusted_host_patterns'] = array(
        '^localhost$',
        '^www.\your-host\.jp$',
      );

     

drupal
module usage

やりたいこと:Drupalのコンテンツタイプ定義を出力して別のサイトにインポートします

  • 背景:Drupal8.3.2
  • Drupal8のコンテンツタイプの定義をCMI(Configuration Managementモジュール、Drupal8のコアーにある)でエクスポートします(ほかのサイトにインポートのため)。
    • シングルタイプのエクスポート: ホーム >> 管理 >> 環境設定 >> 開発 >> 同期 >> エクスポート >> シングルアイテム で行います
    • 構成タイプ:コンテンツタイプ
    • 設定名:エクスポートしたいコンテンツタイプ名を選択します
  • エクスポートされたコンテンツタイプの定義を見てみると、フィールドの情報がありませんでした。
    Drupal8のコンテンツタイプをCMIでエクスポート時にフィールド情報がありません

Durpal8のCMIがコンテンツタイプとコンテンツフィールドが別物として扱われているため、コンテンツタイプとフィールドを一緒にエクスポートはできません

  • CMIの構成タイプを見てみると、「フィールドのストレージ」項目がありまして、これはすべてのコンテンツタイプのフィールドを纏めて表示されています
  • CMIはコンテンツタイプがフィールドと関連付けていないようで、別物として扱っています
  • フィールドの情報をエクスポートしたい場合、一つ一つ個別でエクスポートする必要があるようです

コンテンツタイプをフィールドと一緒にエクスポートしたい場合にモジュール(Feature)を利用します

  • モジュール(Feature)を利用してコンテンツタイプをフィールド情報と一緒にエクスポートすることができます
  • モジュールインストール方法で出力っされたコンテンツタイプをインストールすればそのコンテンツタイプの復元ができます
drupal
module
system_management

Drupal7と比較すると、Drupal8のノード(node)のデータテーブルこう構造が変わった

  • Drupal7ではノード(node)テーブルがタイトルが含まれています
    • タイトル、編集ユーザーなどがあります
  • Drupal8ではノード(node)テーブルがタイトルなどが含まないです
    • 単にノードID(nid)、リビジョンID(vid)のみの識別情報となります

Drupal8のリビジョン管理がnode_revisionテーブルで行います

  • ノード単位のリビジョンがnode、node_revisionテーブルで行います
    Drupal8ノードリビジョン管理
  • nodeテーブルでは、単にnid、vid、typeの管理
  • node_revisionテーブルでは、nid、vidのみでリビジョンを管理しています
drupal
module
taxonomy
field

タクソノミー・タームの選択ツールについて

  • 記事編集画面でタクソノミー・ターム(例:タグ)などの初期選択ツールが自動補完/セレクトボックスなどがあります
  • Drupal7では:Hierarchical Select モジュールをよく使用しました。
    • とてもシンプルとは言えないですが、使いやすいモジュールでした
    • 選択だけではなく、新規タームの作成もできました
  • Drupal8では: Hierachical SelectモジュールはDrupal8のバージョンを提供していない
    • Drupal8では、Simple Hierarchical Select, Chosen などのモジュールがあります
    • 階層別で選択では、Simple Hierachical Selectでは十分機能しています
    • Chosenはサードパーティーのモジュールで、jsライブラリのダウンロード/インストールが必要です

モジュール(Simple Hierachical Select)が使いやすいが問題があり

  • 現時点では、Simple Hierachical Selectモジュールのバージョン:8.x-1.0-alpha4
  • モジュールを通常にインストールして、設定画面で、新規ターム作成許可のチェックボックスが無効化されています
    新規ターム作成チェックボックスが無効されている
  • この点をインターネットで調べてみたら、実際に解決されていない問題があります
    • 詳細説明ページ:https://www.drupal.org/project/shs/issues/2712115
    • パッチ幾つかが提供されていますが、根本的な対応策が見つかっていないようです
    • でも、ターム新規作成をしなければ、このモジュールが十分使えます
drupal
module
system_management

Drupal7と比較すると、Drupal8のノード(node)のデータテーブルこう構造が変わった

  • Drupal7ではノード(node)テーブルがタイトルが含まれています
    • タイトル、編集ユーザーなどがあります
  • Drupal8ではノード(node)テーブルがタイトルなどが含まないです
    • 単にノードID(nid)、リビジョンID(vid)のみの識別情報となります

Drupal8のリビジョン管理がnode_revisionテーブルで行います

  • ノード単位のリビジョンがnode、node_revisionテーブルで行います
    Drupal8ノードリビジョン管理
  • nodeテーブルでは、単にnid、vid、typeの管理
  • node_revisionテーブルでは、nid、vidのみでリビジョンを管理しています
ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)