Right now Granian returns a hard-coded Server: granian
header. Consider allowing it's customization, mainly to make it (a bit) harder to profile and attack.
If the app returns a Server
header, you end up with two of them:
proto.response_str(
status=200,
headers=[
("content-type", "text/plain"),
("server", "MyServer"),
],
body=f"Hello, world!",
)
HTTP/1.1 200 OK
server: granian
server: MyServer
content-type: text/plain
content-length: 18
date: Thu, 06 Jun 2024 10:48:46 GMT
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too