prerelease Prerelease 0.3.1 Latest 0.3.0
CerbIA
prerelease Prerelease 0.3.1 Latest 0.3.0

URL denylist scanner

Flag extracted URLs that match configured deny rules.

Reference
Scanner

cerbia.core.scanners.UrlDenyListScanner extracts URLs from text and reports each URL that matches a blocked full-URL wildcard pattern. Its deny rules live in the runner’s shared UrlRegistry, separately from allow rules. See URL allowlist for the shared full-URL matcher and file syntax.

Parameters

Parameter Default Meaning

blocked_domains

required

List of inline full-URL wildcard patterns, or a path string/Path to a UTF-8 .txt file. An empty list is valid.

severity

HIGH

Finding severity.

action

BLOCK

Finding action. A matching URL produces a blocking finding by default.

content_types

[TEXT, URL, CODE]

Accepted content types.

Pass either a list of inline patterns or a file path; the two forms are not combined. The file is read once when the scanner is constructed. Each nonblank line is one pattern; surrounding whitespace is stripped and lines whose first non-whitespace character is are comments. Inline comments are not supported, and in a rule is retained. Only * is a wildcard; the matcher does not validate strict URL grammar. Relative paths resolve from the process working directory, not the configuration file’s directory. Files must have a .txt suffix. Missing, unreadable, invalid-encoding, or invalid-rule files raise CerbIAConfigError with path context.

An empty or comment-only file adds no deny rules; any findings can only come from other deny rules already in the shared registry. Explicit deny rules win over matching allow rules regardless of source or registration order. UrlRegistry.is_denied checks the deny store directly; is_allowed also returns false for explicitly denied URLs.

Configuration

Import the scanner from cerbia.core.scanners and use the url_denylist scanner ID.

from cerbia.core.scanners import UrlDenyListScanner

scanner = UrlDenyListScanner(blocked_domains=["https://blocked.example/*"])

For a file-backed list, configure the scanner through the existing scanner init_args mechanism:

scanners:
  - scanner: cerbia.core.scanners.UrlDenyListScanner
    init_args:
      blocked_domains: "config/blocked-urls.txt"

To configure inline rules, pass blocked_domains: ["https://blocked.example/*"]. A standalone scanner can receive an existing shared registry with the keyword-only url_registry argument. See Configuration for scanner records.