Mehrschichtiger Formular-Schutz ohne externe Dienste, ergänzend zu Honeypot und HMAC-Time-Trap: - rate_limit_ok(): pro IP+Route (5/10 min), Tages-Cap (100/Tag), Token-Replay - client_ip() / log_spam() (abgewiesene Versuche -> storage/logs/spam.log) - Honeypot-Feld website -> company_url umbenannt (contact-/membership-form) - Ratelimit-Hinweis in form.js - storage/ratelimit/ (gitignored bis auf .gitkeep) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HGzc6GhWhmLJt1jC2q1SRZ
32 lines
679 B
Plaintext
32 lines
679 B
Plaintext
# Secrets — nur config.example.php wird committed
|
|
/config/config.php
|
|
|
|
# Composer
|
|
/vendor/
|
|
|
|
# Laufzeit-Daten
|
|
/storage/logs/*
|
|
/storage/cache/*
|
|
/storage/ratelimit/*
|
|
!/storage/logs/.gitkeep
|
|
!/storage/cache/.gitkeep
|
|
!/storage/ratelimit/.gitkeep
|
|
|
|
# Maschinenverwaltet (bin/instagram-sync.php)
|
|
/data/instagram.json
|
|
/public/assets/img/instagram/*
|
|
!/public/assets/img/instagram/.gitkeep
|
|
|
|
# Maschinenverwaltet (bin/matchcenter-sync.php)
|
|
/data/matchcenter.json
|
|
/public/assets/img/crests/*
|
|
!/public/assets/img/crests/.gitkeep
|
|
|
|
# Referenz-Material der alten Seite — NIE committen
|
|
# (.context_db enthält personenbezogene Daten: Mail-Logs, Hashes)
|
|
/.context/
|
|
/.context_db/
|
|
|
|
# OS
|
|
.DS_Store
|