Fuel

FuelPHP 是一個簡單、靈活、由社群推動的 PHP 網頁框架。

Fuel Framework 中的防火牆

安裝

使用 PHP Composer:

composer require shieldon/shieldon

這也會安裝 Shieldon 所需的依賴套件:

實作

步驟

1. 在初始化核心之前

在您的 fuel/app/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。登錄防火牆面板後,您應該首先更改登錄帳號和密碼。

如果在「Daemon」設定部分啟用了 Shieldon 防火牆,它將開始監視您的網站。請確保您已正確設置這些設定。