Shieldon\Firewall\Kernel
$ip
)string
$ip -
Dirección IP individual.void
Bloquea una dirección IP.
Ejemplo:
$kernel->ban('33.125.12.87');
string
Devuelve la URL actual. Este método es equivalente a $_SERVER['REQUEST_URI']
.
Ejemplo:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
managed | config | demovoid
Indica a Shieldon cómo está gestionado el Firewall. Esta configuración solo afecta al Panel de Firewall.
Ejemplo:
$kernel->managedBy('demo');
int
Ejecuta el proceso de verificación.
Códigos de respuesta:
constante | valor | motivo |
---|---|---|
RESPONSE_DENY |
0 | Bloqueado permanentemente. |
RESPONSE_ALLOW |
1 | Permitido. |
RESPONSE_TEMPORARILY_DENY |
2 | Bloqueado temporalmente y se puede desbloquear resolviendo el Captcha. |
RESPONSE_LIMIT |
3 | Detenido debido a alcanzar el límite de sesión en línea. |
Ejemplo:
$result = $kernel->run();
$key
, $closure
)string
$key -
El nombre de identificación del cierre.Closure
$closure -
La función de cierre.void
Establece una función de cierre.
Ejemplo:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
El componente de ruta de una URI.void
Establece una URL que desea excluir de la protección.
Ejemplo:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
La colección de URL.void
Establece las URL que desea excluir de la protección.
Ejemplo:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
Registra los registros de acciones para los usuarios.void
Establece un registrador de registros de acciones.
Ejemplo:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
El nombre de clave para la propiedad.mixed
$value -
El valor de la clave.void
Ejemplo:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
La explicación de la configuración se puede encontrar aquí.
$settings
)array
$settings -
Las configuraciones.void
Ejemplo:
$kernel->setProperties($settings);
$bool
)bool
$bool -
Establece en true para habilitar el modo estricto, en false para deshabilitarlo.void
Ejemplo:
$kernel->setStrict(true);
$ip
)string
$ip -
Una dirección IP.void
Desbloquea una dirección IP.
Ejemplo:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
La instancia de Captcha.void
Establece un Captcha. Para más detalles de uso, consulte la sección Captcha.
$kernel->setCaptcha(
new \Shieldon\Firewall\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
'version' => 'v2',
'lang' => 'en',
])
);
bool
Devuelve el resultado de los Captchas.
true
: El Captcha se resolvió correctamente, false
en caso contrario.
Ejemplo:
$result = $this->captchaResponsse();
void
Deshabilita todos los módulos Captcha. Este método es para fines de prueba.
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
La instancia del componente.void
Establece un componente.
Ejemplo:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
El nombre de clase del componente.void
| ComponentProvider
Obtiene una instancia del componente desde el contenedor de componentes.
Ejemplo:
$useragent = $kernel->getComponent('UserAgent');
void
Deshabilita todos los componentes incluso si ya están configurados.
Ejemplo:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
Consulta datos desde el controlador que elijas.void
Ejemplo:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
Especifica un canal.void
Ejemplo:
$kernel->setChannel('web_project');
void
Deshabilita la creación automática de la base de datos.
Ejemplo:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
Configuraciones de filtro.void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
El nombre del filtro.bool
$value -
True para habilitar el filtro, false en caso contrario.void
Ejemplo:
$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false);
Configuraciones predeterminadas:
clave | tipo | valor | descripción |
---|---|---|---|
session | bool | true | Comprueba la sesión creada por el controlador de sesión de Shieldon. |
cookie | bool | false | Comprueba la cookie generada por JavaScript. |
referer | bool | true | Comprueba HTTP_REFERER |
frequency | bool | true | Comprueba la configuración time_unit_quota . |
El filtro de cookie está configurado en false
de manera predeterminada, porque debes insertar el fragmento de JavaScript en tus páginas web. El fragmento creado por getJavascript()
generará una cookie mediante JavaScript.
Consulta getJavascript()
para obtener más detalles sobre su uso.
void
Deshabilita todos los filtros incluso si ya están configurados.
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
Una dirección IP.void
Establece una dirección IP.
Ejemplo:
// Aquí tienes un ejemplo de cómo obtener la dirección IP real de CloudFlare.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];
// Si usas un servicio CDN en tu sitio web,
// asegúrate de obtener la dirección IP real del visitante, de lo contrario, los usuarios serán bloqueados.
$kernel->setIp($realIp);
string
Obtiene la dirección IP actual establecida.
Ejemplo:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
Registro DNS inverso para esa dirección IP.void
Establece un registro RDNS para la verificación.
Ejemplo:
$kernel->setRdns('localhost');
string
Obtiene el nombre de host resuelto para la IP.
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
La instancia del mensajero.void
Ejemplo:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
La configuración de la interfaz de usuario del diálogo.void
Personaliza la interfaz de usuario del diálogo.
Ejemplo:
$settings = [
'lang' => 'en',
'background_image' => '',
'bg_color' => '#ffffff',
'header_bg_color' => '#212531',
'header_color' => '#ffffff',
'shadow_opacity' => '0.2',
];
$kernel->setDialog($settings);
ResponseInterface
Responde al resultado.
Ejemplo:
$response = $kernel->respond();
$directory
)array
$directory -
El directorio donde se encuentran los archivos de plantilla.void
Establece el directorio de plantillas frontend. Puedes copiar estos archivos en un directorio y modificarlos para personalizar el aspecto de los diálogos.
Ejemplo:
$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);
string
Imprime un fragmento de código JavaScript en tus páginas web.
Este fragmento genera una cookie en el navegador del cliente, luego verificamos la cookie para identificar si el cliente es un robot o no.
// Imprime esta variable en tu plantilla de página.
$jsCode = $kernel->getJavascript();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
La cantidad de usuarios en línea. Si se alcanza, los usuarios estarán en cola.int
$period 300
El período de tiempo que los usuarios pueden navegar. (unidad: segundos)bool
$unique false
Permitir solo una sesión por dirección IP.void
Limita las sesiones en línea.
Ejemplo:
$kernel->limitSession(100, 300);
int
Obtiene el número de personas en línea. Si se habilita limitSession
.
Ejemplo:
$count = $kernel->getSessionCount();