Fuel

FuelPHP는 간단하고 유연하며 커뮤니티 기반의 PHP 웹 프레임워크입니다.

Fuel 프레임워크 내에서의 방화벽

설치

PHP Composer를 사용하세요:

composer require shieldon/shieldon

이로써 Shieldon에 필요한 종속성도 설치됩니다:

구현

단계

1. 핵심 초기화 전에

fuel/app/bootstrap.php 파일에서 다음 줄 뒤에 다음 코드를 추가하세요:

require COREPATH.'bootstrap.php';

예시:

/*
|--------------------------------------------------------------------------
| Shieldon 방화벽 실행
|--------------------------------------------------------------------------
|
| Shieldon 방화벽은 웹사이트로 들어오는 모든 HTTP 요청을 감시합니다.
|
*/
if (isset($_SERVER['REQUEST_URI'])) {

    // 이 디렉터리는 쓰기가 가능해야 합니다.
    // `fuel/app/tmp` 디렉터리에 위치시킵니다.
    $storage = __DIR__ . '/tmp/shieldon_firewall';

    $firewall = new \Shieldon\Firewall\Firewall();
    $firewall->configure($storage);
    $firewall->controlPanel('/firewall/panel');

    $response = $firewall->run();

    if ($response->getStatusCode() !== 200) {
        $httpResolver = new \Shieldon\Firewall\HttpResolver();
        $httpResolver($response);
    }
}

$storage 디렉터리가 존재하고 쓰기 가능한지 확인하세요.

2. 방화벽 패널을 위한 라우트 정의

이제 fuel/app/config/routes.php 파일을 수정하고 다음 코드를 추가하세요:

예시:

'firewall/panel(:everything)' => function () {
    $panel = new \Shieldon\Firewall\Panel();
    $panel->entry();
},

전체 예시는 다음과 같을 수 있습니다:

예시:

return array(
    '_root_'  => 'welcome/index',  // 기본 라우트
    '_404_'   => 'welcome/404',    // 404 에러 메인 라우트

    'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

    'firewall/panel(:everything)' => function () {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
    },
);

여기까지입니다.

제어 패널

방화벽 패널은 /firewall/panel에서 접근할 수 있습니다. 페이지를 보려면 브라우저에서 다음 URL로 이동하세요:

https://yoursite.com/firewall/panel

기본 로그인은 shieldon_user이고, 비밀번호는 shieldon_pass입니다. 방화벽 패널에 로그인한 후에는 로그인과 비밀번호를 변경하는 것이 첫 번째 해야 할 일입니다.

Shieldon 방화벽이 Daemon 설정 섹션에서 활성화된 경우 웹사이트를 모니터링하기 시작합니다. 설정을 올바르게 구성했는지 확인하세요.