Shieldon\Firewall\Kernel
$ip
)string
$ip -
単一のIPアドレス。void
IPアドレスをブロックします。
例:
$kernel->ban('33.125.12.87');
string
現在のURLを返します。このメソッドは$_SERVER['REQUEST_URI']
に相当します。
例:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
managed | config | demovoid
Shieldonが管理される方法を指定します。 この設定は、ファイアウォールパネルにのみ影響します。
例:
$kernel->managedBy('demo');
int
チェックプロセスを実行します。
レスポンスコード:
定数 | 値 | 理由 |
---|---|---|
RESPONSE_DENY |
0 | 永久にブロックされました。 |
RESPONSE_ALLOW |
1 | パスしました。 |
RESPONSE_TEMPORARILY_DENY |
2 | 一時的にブロックされ、キャプチャを解決することでブロックが解除されます。 |
RESPONSE_LIMIT |
3 | オンラインセッションの制限に達したため停止しました。 |
例:
$result = $kernel->run();
$key
, $closure
)string
$key -
クロージャの識別名。Closure
$closure -
クロージャ関数。void
クロージャ関数を設定します。
例:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
URIのパスコンポーネント。void
保護から除外したいURLを設定します。
例:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
URLのコレクション。void
保護から除外したいURLを設定します。
例:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
ユーザーのアクションログを記録するためのログ記録器。void
アクションログロガーを設定します。
例:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
プロパティのキー名。mixed
$value -
キーの値。void
例:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
設定の詳細な説明はこちらをご覧ください。
$settings
)array
$settings -
設定。void
例:
$kernel->setProperties($settings);
$bool
)bool
$bool -
厳密モードを有効にする場合はtrue、それ以外の場合はfalseを設定します。void
例:
$kernel->setStrict(true);
$ip
)string
$ip -
IPアドレス。void
IPアドレスのブロックを解除します。
例:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
Captchaのインスタンス。void
Captchaを設定します。詳細な使用法については、Captchaセクションを参照してください。
$kernel->setCaptcha(
new \Shieldon\Firewall\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
'version' => 'v2',
'lang' => 'en',
])
);
bool
Captchaの結果を返します。
true
:Captchaが成功した場合、false
:それ以外の場合。
例:
$result = $this->captchaResponsse();
void
すべてのCaptchaモジュールを無効にします。このメソッドは、ユニットテストの目的で使用します。
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
コンポーネントのインスタンス。void
コンポーネントを設定します。
例:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
コンポーネントのクラス名。void
| ComponentProvider
コンポーネントのインスタンスをコンポーネントのコンテナから取得します。
例:
$useragent = $kernel->getComponent('UserAgent');
void
設定済みのすべてのコンポーネントを無効にします。
例:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
選択したドライバーからデータをクエリします。void
例:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
チャネルを指定します。void
例:
$kernel->setChannel('web_project');
void
自動的にデータベースのビルドを無効にします。
例:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
フィルターの設定。void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
フィルターの名前。bool
$value -
フィルターを有効にする場合はtrue、それ以外の場合はfalse。void
例:
$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false);
デフォルトの設定:
キー | タイプ | 値 | 説明 |
---|---|---|---|
session | bool | true | Shieldonセッションドライバーによるセッションのチェック。 |
cookie | bool | false | JavaScriptによって生成されたクッキーのチェック。 |
referer | bool | true | HTTP_REFERER のチェック |
frequency | bool | true | time_unit_quota の設定のチェック。 |
Cookieフィルターはデフォルトでfalse
に設定されています。これは、JavaScriptスニペットをWebページに出力する必要があるためです。getJavascript()
が生成するスニペットはJavaScriptによってクッキーを生成します。
使用法については、getJavascript()
を参照してください。
void
設定済みのすべてのフィルターを無効にします。
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
IPアドレス。void
IPアドレスを設定します。
例:
// ここでは、CloudFlareから実際の訪問者のIPを取得する例です。
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];
// ウェブサイトでCDNサービスを使用している場合は、
// 実際の訪問者のIPを取得するようにしてください。そうしないと、ユーザーがブロックされます。
$kernel->setIp($realIp);
string
現在設定されているIPを取得します。
例:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
IPアドレスの逆引きDNSレコード。void
チェック用の逆引きDNSレコードを設定します。
例:
$kernel->setRdns('localhost');
string
IPの逆引きホスト名を取得します。
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
メッセンジャーのインスタンス。void
例:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
ダイアログUIの設定。void
ダイアログUIをカスタマイズします。
例:
$settings = [
'lang' => 'en',
'background_image' => '',
'bg_color' => '#ffffff',
'header_bg_color' => '#212531',
'header_color' => '#ffffff',
'shadow_opacity' => '0.2',
];
$kernel->setDialog($settings);
ResponseInterface
結果を応答します。
例:
$response = $kernel->respond();
$directory
)array
$directory -
テンプレートファイルが配置されているディレクトリ。void
フロントエンドテンプレートディレクトリを設定します。これにより、ダイアログの外観をカスタマイズするために、これらのファイルをディレクトリにコピーし、編集することができます。
例:
$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);
string
WebページにJavaScriptスニペットを出力します。
このスニペットは、クライアントのブラウザでクッキーを生成し、クッキーをチェックしてクライアントがボットかどうかを識別します。
// ページテンプレートでこの変数を出力します。
$jsCode = $kernel->getJavascript();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
オンラインユーザー数。達するとユーザーはキューに入ります。int
$period 300
ユーザーの閲覧を許可する時間帯。 (単位:秒)bool
$unique false
1つのIPアドレスに対して1つのセッションのみを許可します。void
オンラインセッションを制限します。
例:
$kernel->limitSession(100, 300);
int
オンラインの人数を取得します。limitSessionが有効な場合。
例:
$count = $kernel->getSessionCount();