Fuel

FuelPHP é um framework PHP simples, flexível e orientado pela comunidade.

Firewall no Framework Fuel

Instalação

Use o PHP Composer:

composer require shieldon/shieldon

Isso também irá instalar as dependências necessárias para o Shieldon:

  • shieldon/psr-http A implementação PSR-7, 15, 17 com documentação completa e testes extensivos.
  • shieldon/event-dispatcher O despachante de eventos mais simples.
  • shieldon/web-security Uma coleção de funções relacionadas à segurança na web.
  • shieldon/messenger Uma coleção de módulos para enviar mensagens para APIs ou serviços de terceiros, como Telegram, Line, RocketChat, Slack, SendGrid, MailGun e mais.

Implementação

Passos

1. Antes de Inicializar o Core

No arquivo fuel/app/bootstrap.php, após esta linha:

require COREPATH.'bootstrap.php';

Adicione o seguinte código:

Exemplo:

/*
|--------------------------------------------------------------------------
| Execute o Firewall Shieldon
|--------------------------------------------------------------------------
|
| O Firewall Shieldon irá monitorar todas as solicitações HTTP que chegam ao seu site.
|
*/
if (isset($_SERVER['REQUEST_URI'])) {

    // Este diretório precisa ter permissão de escrita.
    // Nós o colocamos no diretório `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);
    }
}

Certifique-se de que o diretório $storage exista e tenha permissão de escrita.

2. Definir uma Rota para o Painel do Firewall

Agora, modifique o arquivo fuel/app/config/routes.php e adicione o seguinte código:

Exemplo:

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

O exemplo completo pode ser assim:

Exemplo:

return array(
    '_root_'  => 'welcome/index',  // A rota padrão
    '_404_'   => 'welcome/404',    // A rota principal de erro 404

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

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

É isso.

Painel de Controle

Você pode acessar o Painel de Firewall em /firewall/panel. Para visualizar a página, acesse esta URL em seu navegador:

https://yoursite.com/firewall/panel

O login padrão é shieldon_user, e a senha é shieldon_pass. Após fazer login no Painel de Firewall, a primeira coisa que você deve fazer é alterar o login e a senha.

Se o Firewall Shieldon estiver ativado na seção de configurações do Daemon, ele começará a monitorar seu site. Certifique-se de ter configurado corretamente as configurações.