Shieldon\Firewall\Kernel
$ip
)string
$ip -
Endereço IP único.void
Bloqueia um endereço IP.
Exemplo:
$kernel->ban('33.125.12.87');
string
Retorna a URL atual. Este método é equivalente a $_SERVER['REQUEST_URI']
.
Exemplo:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
gerenciado | config | demovoid
Informa ao Shieldon por qual tipo o Firewall está sendo gerenciado. Essa configuração afeta apenas o Painel do Firewall.
Exemplo:
$kernel->managedBy('demo');
int
Executa o processo de verificação.
Códigos de resposta:
constante | valor | motivo |
---|---|---|
RESPONSE_DENY |
0 | Bloqueado permanentemente. |
RESPONSE_ALLOW |
1 | Permitido. |
RESPONSE_TEMPORARILY_DENY |
2 | Bloqueado temporariamente e pode ser desbloqueado resolvendo o Captcha. |
RESPONSE_LIMIT |
3 | Interrompido devido ao limite de sessões online alcançado. |
Exemplo:
$result = $kernel->run();
$key
, $closure
)string
$key -
O nome de identificação do fechamento.Closure
$closure -
A função de fechamento.void
Define uma função de fechamento.
Exemplo:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
O componente de caminho de um URI.void
Define uma URL que você deseja excluir da proteção.
Exemplo:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
A coleção de URLs.void
Define as URLs que você deseja excluir da proteção.
Exemplo:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
Registra logs de ações para os usuários.void
Define um registrador de log de ações.
Exemplo:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
O nome da chave para a propriedade.mixed
$value -
O valor da chave.void
Exemplo:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
A explicação das configurações pode ser encontrada aqui.
$settings
)array
$settings -
As configurações.void
Exemplo:
$kernel->setProperties($settings);
$bool
)bool
$bool -
Define como true para habilitar o modo estrito, false para desabilitá-lo.void
Exemplo:
$kernel->setStrict(true);
$ip
)string
$ip -
Um endereço IP.void
Desbloqueia um endereço IP.
Exemplo:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
A instância do Captcha.void
Define um Captcha. Para detalhes de uso, consulte a seção Captcha.
$kernel->setCaptcha(
new \Shieldon\Firewall\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
'version' => 'v2',
'lang' => 'en',
])
);
bool
Retorna o resultado dos Captchas.
true
: Captcha resolvido com sucesso, false
caso contrário.
Exemplo:
$result = $this->captchaResponsse();
void
Desabilita todos os módulos Captcha. Este método é para fins de teste.
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
A instância do componente.void
Define um componente.
Exemplo:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
O nome da classe do componente.void
| ComponentProvider
Obtém uma instância do componente a partir do contêiner de componentes.
Exemplo:
$useragent = $kernel->getComponent('UserAgent');
void
Desabilita todos os componentes, mesmo que já estejam configurados.
Exemplo:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
Consulta dados a partir do driver que você escolher.void
Exemplo:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
Especifica um canal.void
Exemplo:
$kernel->setChannel('web_project');
void
Desabilita a construção automática do banco de dados.
Exemplo:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
Configurações do filtro.void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
O nome do filtro.bool
$value -
True para habilitar o filtro, false caso contrário.void
Exemplo:
$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false);
Configurações padrão:
chave | tipo | valor | descrição |
---|---|---|---|
session | bool | true | Verifica a sessão criada pelo driver de sessão Shieldon. |
cookie | bool | false | Verifica o cookie gerado pelo JavaScript. |
referer | bool | true | Verifica HTTP_REFERER |
frequency | bool | true | Verifica a configuração time_unit_quota . |
O filtro de cookie está configurado como false
por padrão, porque você precisa inserir o trecho de JavaScript em suas páginas da web. O trecho criado por getJavascript()
irá gerar um cookie através do JavaScript.
Consulte getJavascript()
para obter mais detalhes sobre seu uso.
void
Desabilita todos os filtros, mesmo que já estejam configurados.
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
Um endereço IP.void
Define um endereço IP.
Exemplo:
// Aqui está um exemplo de como obter o IP real do visitante do CloudFlare.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];
// Se você estiver usando um serviço CDN em seu site,
// certifique-se de obter o IP real do visitante, caso contrário, os usuários serão bloqueados.
$kernel->setIp($realIp);
string
Obtém o endereço IP atual definido.
Exemplo:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
Registro de DNS reverso para esse endereço IP.void
Define um registro RDNS para verificação.
Exemplo:
$kernel->setRdns('localhost');
string
Obtém o nome de host resolvido para o IP.
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
A instância do mensageiro.void
Exemplo:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
As configurações da interface do usuário do diálogo.void
Personaliza a interface do usuário do diálogo.
Exemplo:
$settings = [
'lang' => 'en',
'background_image' => '',
'bg_color' => '#ffffff',
'header_bg_color' => '#212531',
'header_color' => '#ffffff',
'shadow_opacity' => '0.2',
];
$kernel->setDialog($settings);
ResponseInterface
Responde ao resultado.
Exemplo:
$response = $kernel->respond();
$directory
)array
$directory -
O diretório onde os arquivos de modelo estão localizados.void
Define o diretório de modelos frontend. Você pode copiar esses arquivos para um diretório e modificá-los para personalizar a aparência dos diálogos.
Exemplo:
$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);
string
Imprime um trecho de código JavaScript em suas páginas da web.
Este trecho gera um cookie no navegador do cliente e, em seguida, verificamos o cookie para identificar se o cliente é um robô ou não.
// Imprima essa variável em seu modelo de página.
$jsCode = $kernel->getJavascript();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
A quantidade de usuários online. Se atingido, os usuários serão colocados em fila.int
$period 300
O período de tempo permitido para os usuários navegarem. (unidade: segundos)bool
$unique false
Permitir apenas uma sessão por endereço IP.void
Limita as sessões online.
Exemplo:
$kernel->limitSession(100, 300);
int
Obtém a contagem de pessoas online. Se limitSession
estiver habilitado.
Exemplo:
$count = $kernel->getSessionCount();