Skip to content

Commit c9cab7c

Browse files
committed
respect DNT header from browsers
1 parent 468d637 commit c9cab7c

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

mystbin/backend/routers/pastes.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@ async def find_discord_tokens(request: MystbinRequest, pastes: payloads.PastePut
134134
return tokens or None
135135

136136

137+
def respect_dnt(request: MystbinRequest):
138+
if request.headers.get("DNT", None) == "1":
139+
return "DNT"
140+
141+
if request.app.config["paste"]["log_ip"]:
142+
return request.headers.get("X-Forwarded-For", request.client.host)
143+
144+
return None
145+
137146
desc = f"""Post a paste.
138147
139148
This endpoint falls under the `postpastes` ratelimit bucket.
@@ -177,9 +186,7 @@ async def put_pastes(
177186
expires=payload.expires,
178187
author=author,
179188
password=payload.password,
180-
origin_ip=request.headers.get("x-forwarded-for", request.client.host)
181-
if request.app.config["paste"]["log_ip"]
182-
else None,
189+
origin_ip=respect_dnt(request)
183190
)
184191

185192
paste["notice"] = notice
@@ -260,9 +267,7 @@ async def _partial(target, spool: UploadFile):
260267
expires=payload.expires,
261268
author=author,
262269
password=payload.password,
263-
origin_ip=request.headers.get("x-forwarded-for", request.client.host)
264-
if request.app.config["paste"]["log_ip"]
265-
else None,
270+
origin_ip=respect_dnt(request)
266271
)
267272

268273
paste["notice"] = notice
@@ -512,8 +517,6 @@ async def compat_create_paste(request: MystbinRequest):
512517
paste: Record = await request.app.state.db.put_paste(
513518
paste_id=generate_paste_id(),
514519
pages=[payloads.PasteFile(filename="file.txt", content=content.decode("utf8"))],
515-
origin_ip=request.headers.get("x-forwarded-for", request.client.host)
516-
if request.app.config["paste"]["log_ip"]
517-
else None,
520+
origin_ip=respect_dnt(request)
518521
)
519522
return UJSONResponse({"key": paste["id"]})

0 commit comments

Comments
 (0)