Skip to content
SOptim SOptim / Docs

カスタムルール

Access Control が粗い粒度のブロック(国、IP)を提供する一方で、カスタムルールでは正確なポリシーを表現できます: 「過去 60 秒で /cart を 10 回以上叩いている ASN 14061 からの空の user-agent を持つ訪問者をブロック」。

ルールの構造

ルールには 4 つの部分があります:

  1. 名前 — 自分の参照用
  2. 条件 — 1 つ以上、AND で結合
  3. アクションallowchallengeblock
  4. 優先度 — 低い番号が勝ち。デフォルト 100。

ルールはスコアベースパイプラインの に評価されます。いずれかのルールが一致すると、そのアクションが実行され、スコアリングがスキップされます。

条件

フィールド 演算子 値の例
ip equals、in CIDR 203.0.113.0/24
country equals、in list RU[CN,KP,IR]
asn equals、in list 14061[16509,14618]
asn_org contains、regex DigitalOcean
user_agent contains、regex、empty ^curl/
header.<name> exists、equals、regex header.accept-language regex ^$
path equals、prefix、regex /cart、prefix /account
rate.requests gt within window > 10 within 60s
score gt、lt > 50

正規表現は ^$ でアンカーされます。テストには regex101.com を使用。

チェックアウト隣接パス上のすべての空の user-agent をブロック:

フィールド Op
user_agent empty
path prefix /checkout

アクション: block。優先度: 50

既知のデータセンター ASN から /cart を高速で叩く人をチャレンジ:

フィールド Op
asn in list [16509, 14618, 14061, 8075]
path prefix /cart
rate.requests gt within 5 within 30s

アクション: challenge。優先度: 30

疑わしく見えても監視サービスを許可:

フィールド Op
header.x-monitor-key equals <your-shared-secret>

アクション: allow。優先度: 1

制限

プラン ショップごとのルール レートウィンドウストレージ
Scale 25 ルール 60s スライディングウィンドウ
Max 100 ルール 5min スライディングウィンドウ

Free/Grow にカスタムルールはありません。

ルールのテスト

ルールをアクション monitor で 24 時間保存(エンフォースメントなし、マッチをログするだけ)。Visitor Analytics をチェック — reason = rule:<your-rule-name> でフィルタリング。マッチが正しく見えれば、アクションを block または challenge に切り替え。

利用可能なプラン

Scale ($49/月) と Max ($99/月)。

Last updated: 2026-05-19
Send feedback