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-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22d9af2866c480705bf7619f1dbe82d6d734e908b507949e33c0e47075dae5da |
|
MD5 | 6fa664c5d77c3b516e2ef7410bad9728 |
|
BLAKE2b-256 | 6e32d4bf4f37f47b533f822d50ad1e2961273e2aa6f4662798bfedfb8a113363 |
Close
Hashes for starlette_early_data-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f2698e200d00a432ba02f1e54ef6a2f7535dfde6479aa19e6da3047f33811b9 |
|
MD5 | a1fd90edadc813b79dccbfb563e905a7 |
|
BLAKE2b-256 | 1786983d2f73a7fe029015f64a05502107703954596f57b0bde653d3bf17f49c |