Proxy is hardened so it can directly face the internet
- Dominant language
- C#
- Stars
- 9.6k
- Forks
- 933
- Avg merge
- 12d 18h
- Merged PRs (30d)
- 2
Description
We expect several features to be add-ins that plug in as connection middleware. Add a connection middleware to the sample in this repo.
Here's one example from Http2:
https://github.com/dotnet/aspnetcore/blob/09bb7b4ca5a4fbde0283c294c35fac8b485c0074/src/Servers/Kestrel/samples/Http2SampleApp/Program.cs#L41-L54
Other things we expect to need to plug into here:
- Sniff SNI and rate limit
- Rate limit SSL handshakes by IP
We don't have to write those components as part of this task, just demonstrate that a connection middleware has access to the necessary inputs and controls (e.g. IPs, sniffing the data stream, drop connections, etc.).
Specifically, this involves being able to filter connections based on information contained in the ClientHello TLS frame. Examples include:
- Cipher Suite selection
- Protocol Version
- Server Name Indication (SNI)
- Application-Level Protocol Negotiation (ALPN; used for HTTP/2 and HTTP/3)
Contributor guide
Assessment
This issue has not been assessed yet.