# anonim-qa - Caddy-host IP-mentes naplózással (ADR-0001). Beillesztendő az /etc/caddy/conf.d/ alá. # A napló nem tartalmaz IP-t, fejlécet, résztvevői útvonalat és kulcsot. Ellenőrzés telepítés után (mind elvárt: 0): # grep -cE '([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-fA-F]{1,4}:){2,7}[0-9a-fA-F]{1,4}' /var/log/caddy/anonim-qa.log (IPv4 és IPv6) # grep -ciE 'user-agent|sec-ch|accept-language|x-token|x-own|admin-key|if-none-match|etag|/e/|/m/|/d/' /var/log/caddy/anonim-qa.log suttogj.hu { encode zstd gzip # A résztvevői, moderátori és kivetítői útvonalak egyáltalán nem kerülnek naplóba: az IP nélküli napló is másodperc-pontos # beküldés-idősort adna (időbélyeg + /e//q), ami a percre kerekítést és a kötegelést kijátszaná (ADR-0001, ADR-0007). @nem_naplozott path /e/* /m/* /d/* /i/* log_skip @nem_naplozott log { output file /var/log/caddy/anonim-qa.log { roll_size 20mb roll_keep 5 } format filter { wrap json fields { # Mind a kérés-, mind a válaszfejlécek teljes részfája törölve (feketelista helyett fehérlista-jellegű naplózás): # nem marad user-agent, Sec-CH-UA*, Accept-Language, If-None-Match/ETag, X-Admin-Key, X-Token, X-Own stb. request>remote_ip delete request>client_ip delete request>remote_port delete request>headers delete resp_headers delete request>uri regexp "^/(m|d)/[^/?]+" "/$1/[kulcs]" } } } header { Content-Security-Policy "default-src 'self'; img-src 'self' data:; connect-src 'self'; frame-ancestors 'self'" Referrer-Policy "no-referrer" X-Content-Type-Options "nosniff" -Server } reverse_proxy 127.0.0.1:8500 { header_up -X-Forwarded-For header_up -X-Real-IP header_up -Forwarded flush_interval -1 # SSE a /d/*/stream útvonalon } }