forked from bitcoinafterlife/bal-server
fix: per-endpoint rate limits, request timeout and input hardening
bal-server: - Wire independent actix-governor buckets per endpoint class (pushtxs, searchtx, info/stats, default) so polling a cheap endpoint can no longer exhaust the push-txs budget; previously every limit was dead config - Enforce BAL_SERVER_ACTIX_TIMEOUT_SECS via a request-timeout middleware that returns 408 Request Timeout, covering slow request bodies - De-duplicate txids within a single /pushtxs request body - Replace the byte-slice xpub detection (panic on non-ASCII) with a safe prefix check bal-pusher: - Handle malformed/empty ZMQ frames without indexing panics or UTF-8 expect - Return an error from sign_message and skip the stats report instead of panicking when the private key cannot be parsed validation / db: - Reject IPv4-mapped IPv6 targets (::ffff:a.b.c.d) in is_valid_welist_url to close an SSRF bypass, with unit tests - Use Path::starts_with for the SQLite forbidden-directory check so paths like /etcfoo are not misclassified misc: - Add explicit secret patterns to .gitignore and sync the docs
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@@ -1,10 +1,18 @@
|
||||
# Secrets and environment files - NEVER commit
|
||||
.env
|
||||
.env.*
|
||||
.env.local
|
||||
*.env.local
|
||||
.env.production
|
||||
.env.secret
|
||||
!.env.example
|
||||
*.pem
|
||||
private_key.pem
|
||||
privkey.pem
|
||||
!public_key.pem
|
||||
*.key
|
||||
ec.key
|
||||
chiave_privata.key
|
||||
|
||||
# Databases
|
||||
*.db
|
||||
|
||||
Reference in New Issue
Block a user