CakePHP

CakePHPは、MVCアーキテクチャのパターンに従う広く使用されているオープンソースのWebフレームワークです。PHPコミュニティで高く評価されており、Webアプリケーションの構築に役立つさまざまな機能とツールを提供しています。

このガイドはCakePHPのバージョン3.8での動作確認が行われていますが、フレームワークの古いバージョンでも適用可能です。

CakePHPフレームワークのファイアウォール

インストール

PHP Composerを使用してください:

composer require shieldon/shieldon

これにより、Shieldonに必要な依存関係もインストールされます:

  • shieldon/psr-http ドキュメントが充実し、広範なテストが行われたPSR-7、15、17の実装。
  • shieldon/event-dispatcher 最もシンプルなイベントディスパッチャー。
  • shieldon/web-security Webセキュリティに関連する機能のコレクション。
  • shieldon/messenger Telegram、Line、RocketChat、Slack、SendGrid、MailGunなど、サードパーティのAPIやサービスにメッセージを送信するためのモジュールのコレクション。

実装

CakePHP 3

ステップ1とステップ2は、/config/route.phpという同じファイルに適用されます。

ステップ1とステップ2は、/config/routes.phpという同じファイルの修正を必要とします。そのため、以下の手順をそのファイル内で実行してください:

  • /config/routes.phpファイルを開きます。
  • アプリケーションのルートを定義しているセクションを見つけます。
  • ステップ1とステップ2で説明されている変更を提供された手順に従って実装します。
  • /config/routes.phpファイルに変更を保存します。

これらの手順に従うことで、両方の変更が適切なファイルに行われます。

1. ミドルウェアの登録

CakePHP用のミドルウェアがこちらで提供されています。アプリケーションに登録してください。

例:

/**
 * 現在のルートスコープにShieldonファイアウォールを適用します。
 */
$routes->registerMiddleware(
    'firewall',
    new \Shieldon\Firewall\Integration\CakePhp()
);

$routes->applyMiddleware('firewall');

2. ファイアウォールパネル用のルートの定義

例:

/**
 * ファイアウォールパネルのルートを定義します。
 */
$routes->connect('/firewall/panel/', [
    'controller' => 'FirewallPanel',
    'action' => 'entry'
]);

3. ファイアウォールパネル用のコントローラの作成

FirewallPanelControllerという名前のコントローラを作成し、以下のコードを追加してください。

例:

$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
exit;

CSRFが有効になっている場合、以下の行を追加してください。

例:

$panel->csrf(
    '_csrfToken',
    $this->request->getParam('_csrfToken')
);

完全な例は以下のようになります:

例:

<?php

namespace App\Controller;

class FirewallPanelController extends AppController
{
    /**
     * これはファイアウォールパネルのエントリポイントです。
     */
    public function entry()
    {
        // ファイアウォールパネルにアクセスします。
        $panel = new \Shieldon\Firewall\Panel();

        $panel->csrf([
            '_csrfToken' => $this->request->getParam('_csrfToken')
        ]);

        $panel->entry();
        exit;
    }
}

以上です。

ファイアウォールパネルには/firewall/panelでアクセスできます。ページを表示するには、このURLをブラウザで開いてください。

コントロールパネル

https://for.example.com/firewall/panel

デフォルトのログインはshieldon_userで、パスワードはshieldon_passです。ファイアウォールパネルにログインした後、まずログインとパスワードを変更してください。

"Daemon"の設定セクションでShieldonファイアウォールが有効になっている場合、ウェブサイトを監視し始めます。設定を正しく行っていることを確認してください。