# Security

An HTTP Range parser is not access control. Successful parsing and resolution do
not prove that a caller may read the selected representation, and this library
does not authenticate users, authorize resources, or enforce tenant boundaries.

Range processing can amplify work. A small header can request many parts, many
tiny slices, repeated or overlapping slices, or a descending sequence that is
expensive for storage. Very large headers and decimal strings can consume parser
resources. Multipart generation, compression, encryption, caching, and network
transmission can add costs beyond the parser itself.

The parser counters these inputs with bounded header size, range count, number
digit count, range-unit size, and unknown-unit payload size. Choose
`Limits::strict()` for exposed endpoints or construct policy around the default
profile. Overflow is detected before an `Int64` multiplication can wrap.

The audit layer reports many small ranges, overlaps, duplicates, descending
order, adjacency, large values or headers, excessive counts, zero-length suffixes,
unknown units, and inefficient sets. Findings are advisory: an RFC-valid request
can still be operationally undesirable, and callers decide whether to ignore,
coalesce, reject, rate-limit, or cap response work.

Limits and audit cannot prove a server is resistant to every denial-of-service
technique. Callers must also bound file reads, seeks, part count, response bytes,
memory, CPU, concurrency, and outbound bandwidth.
