Shieldon Firewallは、その動作をカスタマイズできる設定の豊富なセットを持っています。以下に、設定できるプロパティの概要を示します:
Shieldonインスタンスを初期化するときや、後でsetProperty
またはsetProperties
APIを使用して設定を調整できます。
初期化
$config = [
'time_unit_quota' => [
['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
]
];
$kernel = new \Shieldon\Shieldon($config);
setProperty
$kernel->setProperty('time_unit_quota', [
's' => 2, 'm' => 10, 'h' => 30, 'd' => 60
]);
setProperties
$config = [
'time_unit_quota' => [
['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
]
];
$kernel->setProperties($config);
key | type | value |
---|---|---|
time_unit_quota | array | ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60] |
time_reset_limit | integer | 3600 |
interval_check_referer | integer | 5 |
interval_check_session | integer | 30 |
limit_unusual_behavior | array | ['cookie' => 5, 'session' => 5, 'referer' => 10] |
cookie_name | string | ssjd |
cookie_domain | string | " |
この設定は、特定の時間単位に基づいてウェブサイトのユーザーに対するページビューの上限を定義できるようにします。配列のキーは 's'(秒)、'm'(分)、'h'(時間)、'd'(日)で、各キーはその時間単位でのユーザーごとのページビューの上限に対応します。デフォルトは ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
です。
key | value | description |
---|---|---|
s | integer | 訪問者ごとの秒ごとのページビュー |
m | integer | 訪問者ごとの分ごとのページビュー |
h | integer | 訪問者ごとの時間ごとのページビュー |
d | integer | 訪問者ごとの日ごとのページビュー |
ユーザーが1日に100ページ
を表示することを制限したいだけの場合は、s
、m
、h
を非常に高い数値に設定し、d
を100
に設定します。
ユーザーが上限に達すると一時的に禁止されるだけであり、キャプチャを解決することで禁止を解除できるため、値をあまり緩く設定しないでください。それはこのライブラリを使用する意味がないからです。
time_reset_limit
これは、フィルターにフラグが立てられた数がリセットされるまでの秒数です。デフォルト値は3600(1時間)です。
interval_check_referer
interval_check_referer
と同様に、このプロパティは、ShieldonがユーザーのSESSION
クッキーをチェックし始めるまでの秒単位の遅延を設定します。デフォルトは30
秒です。
ユーザーが最初にウェブサイトを訪れてブラウザのURLを入力すると、HTTP_REFERER
は空です。interval_check_referer
秒後、ShieldonはHTTP_REFERER
をチェックし始めます。
この値は無視できます。
interval_check_session
ユーザーが初めてウェブサイトを訪れると、interval_check_session
秒後にShieldonがSESSION
クッキーをチェックし始めます。
limit_unusual_behavior
この設定では、特定の条件に基づいて通常とは異なる行動としてフラグが立てられる上限を定義できます。
デフォルトは['cookie' => 5, 'session' => 5, 'referer' => 10]
です。
ウェブサイトの訪問者に対して通常とは異なる行動としてフラグが立てられる上限とクオータを設定します。
key | value | description |
---|---|---|
cookie | integer | JavaScriptによって生成されたクッキー。 |
session | integer | PHPセッション |
referer | integer | HTTP_REFERER |
cookie_name
このプロパティは、Shieldonが使用するクッキーの名前を指定するために使用されます。デフォルトはssjd
です。
cookie_domain
このプロパティは、クッキーが制限されるドメインを定義します。デフォルトでは、クッキーはサーバー上のすべてのサブドメインで利用可能です。
deny_attempt_enable
このオプションを有効にすると、Shieldonは連続したCAPTCHAの失敗をすべて記録します。 ユーザーが指定された制限に達すると、Shieldonはそのユーザーをルールテーブルのブラックリストに追加します。
デフォルト値はtrue
です。
deny_attempt_buffer
このプロパティは、ユーザーが何回CAPTCHAを解決できなかった後にブラックリストに追加されるかを定義します。
デフォルト値は10
です。
deny_attempt_count
このプロパティは、ユーザーがブラックリストに追加されるまでのCAPTCHAの失敗回数を指定します。
デフォルト値は3
です。
reset_attempt_count_period
このパラメータは、試行回数がリセットされるまでの時間(秒単位)を定義します。デフォルトでは、カウンターは30分ごとにリセットされます。
'reset_attempt_count_period' => 1800,
iptables_watching_folder
このパラメータは、iptablesサービスがShieldon Firewallからのコマンドを監視するディレクトリを定義します。この場合、一時的に'/tmp/'
ディレクトリを監視しています。
ここで述べられていないプロパティについては、Shieldon\Firewall\Helpers
クラスのget_default_properties()
関数を参照してください。
/**
* Shieldonのコアのデフォルト設定。
*
* @return array
*/
function get_default_properties(): array
{
return [
'time_unit_quota' => [
's' => 2,
'm' => 10,
'h' => 30,
'd' => 60
],
'time_reset_limit' => 3600,
'interval_check_referer' => 5,
'interval_check_session' => 5,
'limit_unusual_behavior' => [
'cookie' => 5,
'session' => 5,
'referer' => 10
],
'cookie_name' => 'ssjd',
'cookie_domain' => '',
'cookie_value' => '1',
'display_online_info' => true,
'display_user_info' => false,
'display_http_code' => false,
'display_reason_code' => false,
'display_reason_text' => false,
'deny_attempt_enable' => [
'data_circle' => false,
'system_firewall' => false,
],
'deny_attempt_notify' => [
'data_circle' => false,
'system_firewall' => false,
],
'deny_attempt_buffer' => [
'data_circle' => 10,
'system_firewall' => 10,
],
'record_attempt_detection_period' => 5,
'reset_attempt_counter' => 1800,
'iptables_watching_folder' => '/tmp/',
];
}
注:これらのプロパティは、Shieldonインスタンスの初期化時またはsetProperty
またはsetProperties
APIを後で使用して設定できます。