Slide 1

Slide 1 text

あなたのDrupalのディレクトリ構成は安全ですか?

Slide 2

Slide 2 text

Drupal Paranoiaで Drupalをより安全に 金子 智嗣 [email protected] の運営メンバ @snize Drupal Meetup Tokyo

Slide 3

Slide 3 text

過去の脆弱性 2016年に というモジュールで 脆弱性 が発見された。 Coder SA-CONTRIB-2016-039

Slide 4

Slide 4 text

webからアクセス可能な場所にあるだけで脆弱性 となった。 The module does not need to be enabled for this to be exploited. Its presence on the le system and being reachable from the web are su cient.

Slide 5

Slide 5 text

Demo 一般的DrupalプロジェクトのDocrootを確認 zip版 版(composer) drupal-project

Slide 6

Slide 6 text

他のWebフレームワークと比較 Symfony Quick Tour: The Architecture Directory Structure - Laravel - The PHP Framework For Web Artisans CakePHP のフォルダー構成 - 3.6

Slide 7

Slide 7 text

Drupalと他のComposerなフレームワークとの違い

Slide 8

Slide 8 text

Drupal Paranoia 不要なファイルを削除し 必要なファイルへのみシンボリックリンクを生成する

Slide 9

Slide 9 text

なぜこのプラグインを使うか 楽しつつ、脆弱性を生まないようにするため。

Slide 10

Slide 10 text

Demo 準備します... 1. もとのDocrootを退避 2. composer.json の extra にコードを追加 3. プラグインをインストール

Slide 11

Slide 11 text

もとのDocrootを退避 mv web app

Slide 12

Slide 12 text

composer.jsonを編集 "installer-paths": { "app/core": ["type:drupal-core"], "app/libraries/{$name}": ["type:drupal-library"], "app/modules/contrib/{$name}": ["type:drupal-module"], "app/profiles/contrib/{$name}": ["type:drupal-profile"], "app/themes/contrib/{$name}": ["type:drupal-theme"], "drush/contrib/{$name}": ["type:drupal-drush"] }, "drupal-app-dir": "app", "drupal-web-dir": "web",

Slide 13

Slide 13 text

プラグインをインストール composer require drupal-composer/drupal- paranoia:~1

Slide 14

Slide 14 text

変化を見てみる 1. /app 2. /web

Slide 15

Slide 15 text

まとめ Drupal Paranoiaによって web(docroot) 以下が 必要最小限のファイルに置き換えられ 不用意なアクセスからDrupalを守ることができる。

Slide 16

Slide 16 text

おまけ Drupal Paranoiaは のプロジェクトのひとつ Core doesn't embrace Composer best practices OOTB Figure out how to separate php code from assets in modules and in core so that code can be vendored, and assets under the docroot. Drupal Composer Proposal: Composer Support in Core initiative [#2958021] | Drupal.org

Slide 17

Slide 17 text

以上です、ありがとうございました ( ω ) コンタクト @tomotsugu_kaneko - [email protected] 次回 2018/11/01 @snize drupal-japan.slack.com Drupal Meetup Tokyo - connpass