Getting Started
Shieldon requires at least PHP 7.1
to run.
Installation
Use PHP Composer:
composer require terrylinooo/shieldon
Or, download it and include the Shieldon autoloader.
require 'Shieldon/src/autoload.php';
How to Use
Here is a full example let you know how Shieldon works.
$shieldon = new \Shieldon\Shieldon();
// Use SQLite as the data driver.
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$shieldon->setDriver(new \Shieldon\Driver\SqliteDriver($pdoInstance));
// Set core components.
// This compoent will only allow popular search engline.
// Other bots will go into the checking process.
$shieldon->setComponent(new \Shieldon\Component\TrustedBot());
// You can ignore this setting if you only use one Shieldon on your web application. This is for multiple instances.
$shieldon->setChannel('web_project');
// Only allow 10 sessions to view current page.
// The defailt expire time is 300 seconds.
$shieldon->limitSession(10);
// Set a Captcha servie. For example: Google recaptcha.
$shieldon->setCaptcha(new \Shieldon\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
]));
// Start protecting your website!
$result = $shieldon->run();
if ($result !== $shieldon::RESPONSE_ALLOW) {
if ($shieldon->captchaResponse()) {
// Unban current session.
$shieldon->unban();
}
// Output the result page with HTTP status code 200.
$shieldon->output(200);
}