Fat-Free

다른 프레임워크와는 달리 Fat-Free는 매우 가벼운 PHP 프레임워크입니다.

Fat-Free 프레임워크의 방화벽

설치

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 등 제3자 API나 서비스로 메시지를 전송하기 위한 모듈의 모음입니다.

구현

다음과 같은 코드가 있다고 가정합니다:

<?php

require dirname(__DIR__) . '/vendor/autoload.php';

$f3 = \Base::instance();
$f3->route('GET /',
    function() {
        echo '안녕하세요, 세계!';
    }
);
$f3->run();

단계

1. Shieldon 방화벽 초기화

다음 줄 이후에:

require dirname(__DIR__) . '/vendor/autoload.php';

다음 코드를 추가하세요:

예시:

// CLI 환경에서 실행 중인 경우 오류 방지.
if (isset($_SERVER['REQUEST_URI'])) {

    // 이 디렉터리는 쓰기 가능해야 합니다.
    $storage = dirname($_SERVER['SCRIPT_FILENAME']) . '/../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);
    }
}

참고:

상위 디렉터리에 shieldon_firewall라는 쓰기 가능한 디렉터리를 생성하세요. Shieldon 방화벽은 이 디렉터리에 데이터를 저장합니다.

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

예시:

$f3->route('GET|POST /firewall/panel*', function() {
    $panel = new \Shieldon\Firewall\Panel();
    $panel->entry();
});

그게 다입니다!

다음 URL을 사용하여 방화벽 패널에 접속할 수 있습니다:

https://yoursite.com/firewall/panel

기본 로그인은 shieldon_user이고 비밀번호는 shieldon_pass입니다. 방화벽 패널에 로그인한 후에는 먼저 로그인과 비밀번호를 변경해야 합니다.

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