Middleware and decorator for processing TLSv1.3 early data requests in Starlette
Project description
starlette-early-data
Middleware and decorator for processing TLSv1.3 early data requests in Starlette
Install: pip install starlette-early-data
What this package can do:
- Detect if request is early data and mark it (
request.state.early_data = True
) - Deny all early data requests (pass
deny_all=True
toadd_middleware
) - Deny early data requests to specific endpoints (use decorator
@deny_early_data
)
Example (test.py
):
import uvicorn
from starlette.applications import Starlette
from starlette.requests import Request
from starlette.responses import PlainTextResponse
from starlette_early_data import EarlyDataMiddleware, deny_early_data
app = Starlette()
app.add_middleware(EarlyDataMiddleware, deny_all=False)
@app.route("/")
async def home(request: Request) -> PlainTextResponse:
return PlainTextResponse("Always OK if deny_all=False")
@app.route("/security_risk")
@deny_early_data
async def security_risk(request: Request) -> PlainTextResponse:
return PlainTextResponse("Security action done after handshake")
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8080)
Send request to http://127.0.0.1:8080/security_risk
with header Early-Data=1
and you will get 425.
Request to http://127.0.0.1:8080/
with the same header will only return 425 if you pass deny_all=True
to app.add_middleware(...)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for starlette-early-data-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc7df09aefcfbb77d999eeeaef25b05c6b67b8599ce0eb4d8b11334f66871f03 |
|
MD5 | b2ea62da437a42e872ff3163ea8e9148 |
|
BLAKE2b-256 | e7b8628322548267615fdb7822684d54e1553044166a065d2bcaa641587481dd |
Close
Hashes for starlette_early_data-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f076ad1442024064bbdd68eea1290078f03cb98aec38319b8839893ca065ef73 |
|
MD5 | 05a77bfa521e83d3a71ff65ed01c57b7 |
|
BLAKE2b-256 | af3845c187f11742026eee31c39d7ac698c04fdfe595905ff5d492ac4910d8ad |