integrity_scanner_fuer_stat.../config.yaml
Your Name 68243a97b9 fix: Bugfixes, toten Code entfernt, Cache-Normalisierung & Session
Echte Bugs:
- extractor: JSON-LD-Crash bei Nicht-Dict-Items (isinstance-Guard)
- baseline/__main__: Crawl-Fehler ins Snapshot-Manifest -> erscheinen im Report
- __main__: Whitelist-/Header-/Webshell-Checks nur noch auf status==200
- crawler: Noise-Param-Regex auf Voll-Key (view=/value= nicht mehr verworfen)
- differ/__main__: unerwartetes JSON-LD via eigenem Kanal, auch auf
  unveraenderten Seiten erkannt, kein Re-Alert auf bereits genehmigte Typen

Aufgeraeumt:
- checker: check_internal_paths, find_broken_pages, canonical_is_hijacked,
  check_jsonld_types entfernt (nicht verdrahtet)
- allowed_paths.yaml-Logik und tote Scoring-Keys entfernt
- tote Imports entfernt

Neuer aktiver Schutz:
- Webshell-/Backdoor-Dateinamen-Check verdrahtet (suspicious_filename: 60).
  Regex wortgrenzen-verankert gegen Fehlalarm auf PSEMailerAntispam.js

Effizienz/Struktur:
- crawler nutzt requests.Session (keep-alive)
- Cache-Buster-Normalisierung an einer Stelle (Extraktion) -> stabile
  Snapshots, differ wieder reiner Set-Diff

Tests: 111 gruen (neu: test_checker.py + Regressionstests)
CLAUDE.md aktualisiert

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 03:20:32 +02:00

110 lines
2.6 KiB
YAML

# Integrity Scanner — Hauptkonfiguration
# Alle Werte sind optional; fehlende werden aus den Defaults übernommen.
target: "https://bredelar.info"
user_agent: "integrity-scanner/1.0 (+security-monitoring)"
request_timeout: 20
data_dir: "data"
reports_dir: "reports"
logs_dir: "logs"
config_dir: "config"
crawl:
max_pages: 200
delay_seconds: 1.0
respect_robots_txt: false
skip_extensions:
- ".jpg"
- ".jpeg"
- ".png"
- ".gif"
- ".webp"
- ".svg"
- ".ico"
- ".pdf"
- ".zip"
- ".woff"
- ".woff2"
- ".ttf"
- ".otf"
- ".eot"
- ".mp4"
- ".mp3"
- ".webm"
- ".avi"
- ".mov"
scoring:
new_external_domain: 50
new_internal_url: 30
missing_internal_url: 20
hidden_content: 40
unexpected_canonical: 35
meta_refresh: 40
unexpected_jsonld: 35
large_text_addition: 20
new_inline_script_suspicious: 30
comment_links: 25
new_broken_link: 20 # neue 4xx/5xx-Seite, die in Baseline nicht vorhanden war
suspicious_filename: 60 # Link auf Webshell-/Backdoor-typischen Dateinamen
thresholds:
yellow: 20 # ab diesem Score: Warnung (gelb)
red: 60 # ab diesem Score: Alarm (rot)
large_text_block_chars: 200 # Textblock ab dieser Länge wird als „groß" gewertet
alerting:
min_level: "yellow" # "yellow" oder "red"
email:
enabled: false
smtp_host: "localhost"
smtp_port: 587
smtp_tls: true
smtp_user: ""
smtp_password_env: "SCANNER_SMTP_PASSWORD" # Passwort aus Umgebungsvariable
from: "scanner@bredelar.info"
to:
- "admin@bredelar.info"
webhook:
enabled: false
url: "" # z.B. Telegram-Bot-Webhook, Slack-Incoming-Webhook
normalization:
strip_html_comments: true
collapse_whitespace: true
# Selektoren, die vor dem Diff ignoriert werden (z.B. Datums-/Cache-Elemente)
ignore_selectors:
# - "#last-modified"
# - ".timestamp"
# Regex-Muster im Text, die vor dem Diff entfernt werden
ignore_patterns:
# - '\d{1,2}\.\d{1,2}\.\d{4}' # Datumsangaben
# - 'Stand:\s+\S+'
# Erlaubte @type-Werte in JSON-LD (alles andere löst Alarm aus)
allowed_jsonld_types:
- "Organization"
- "WebSite"
- "WebPage"
- "Article"
- "BreadcrumbList"
- "ItemList"
- "LocalBusiness"
- "Place"
- "Person"
- "Event"
- "FAQPage"
- "Question"
- "Answer"
- "ImageObject"
- "SiteLinksSearchBox"
- "ContactPage"
- "AboutPage"
# Security-Header, die auf jeder Seite erwartet werden
security_headers:
- "Content-Security-Policy"
- "Strict-Transport-Security"
- "X-Content-Type-Options"
- "Referrer-Policy"