[CORS Proxy] Rate-limits IPv6 requests based on /64 subnets, not specific addresses #1923
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rate-limits the CORS proxy requests based on the first 64 bits of an IPv6 address, not all 128 bits. This prevents a person with an entire /64 subnet from exhausting the storage or getting more than their fair share of the tokens. This only applies to IPv6. For IPv4 addresses, all 64 bits are still considered.
Implementation
Converts a string-based IP address into a binary string, then zeros the first 64 bits in that string and re-encodes it as a human-readable IP string.
Testing instructions
cc @brandonpayton for reviews