CakePHP

CakePHP는 MVC 아키텍처 패턴을 따르는 널리 사용되는 오픈 소스 웹 프레임워크입니다. PHP 커뮤니티에서 높은 평가를 받으며, 웹 애플리케이션을 구축하기 위한 다양한 기능과 도구를 제공합니다.

이 가이드는 CakePHP의 버전 3.8에서 성공적으로 테스트되었습니다. 그러나 이 가이드는 프레임워크의 이전 버전에서도 적용 가능합니다.

CakePHP 프레임워크에서의 방화벽

설치

PHP Composer를 사용하세요:

composer require shieldon/shieldon

이 명령은 Shieldon에 필요한 종속성도 함께 설치합니다:

  • shieldon/psr-http 완전한 문서와 포괄적인 테스트를 갖춘 PSR-7, 15, 17 구현체입니다.
  • shieldon/event-dispatcher 가장 간단한 이벤트 디스패처입니다.
  • shieldon/web-security 웹 보안과 관련된 기능들의 모음입니다.
  • 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 방화벽이 활성화되어 웹사이트를 모니터링하기 시작합니다. 설정을 올바르게 구성했는지 확인해주세요.