Commit
·
e2da0c6
1
Parent(s):
c577586
Added middleware
Browse files- webrify2.py +19 -1
webrify2.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
# scrape.py
|
| 2 |
-
from fastapi import FastAPI, HTTPException
|
| 3 |
from pydantic import BaseModel
|
| 4 |
from typing import Optional
|
| 5 |
import base64
|
|
@@ -61,6 +61,24 @@ async def get_page(url):
|
|
| 61 |
return page, browser, pw
|
| 62 |
|
| 63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
@app.get("/metadata", response_model=MetadataResponse)
|
| 65 |
async def get_metadata(url: str):
|
| 66 |
page, browser, pw = await get_page(url)
|
|
|
|
| 1 |
# scrape.py
|
| 2 |
+
from fastapi import FastAPI, HTTPException, Request, Response
|
| 3 |
from pydantic import BaseModel
|
| 4 |
from typing import Optional
|
| 5 |
import base64
|
|
|
|
| 61 |
return page, browser, pw
|
| 62 |
|
| 63 |
|
| 64 |
+
# 🛡 Middleware to remove platform-identifying headers
|
| 65 |
+
@app.middleware("http")
|
| 66 |
+
async def remove_leaky_headers(request: Request, call_next):
|
| 67 |
+
response: Response = await call_next(request)
|
| 68 |
+
|
| 69 |
+
for header in [
|
| 70 |
+
"link",
|
| 71 |
+
"x-proxied-host",
|
| 72 |
+
"x-proxied-path",
|
| 73 |
+
"x-proxied-replica",
|
| 74 |
+
"server"
|
| 75 |
+
]:
|
| 76 |
+
response.headers.pop(header, None)
|
| 77 |
+
|
| 78 |
+
response.headers["server"] = "Webrify-Secure-Gateway"
|
| 79 |
+
return response
|
| 80 |
+
|
| 81 |
+
|
| 82 |
@app.get("/metadata", response_model=MetadataResponse)
|
| 83 |
async def get_metadata(url: str):
|
| 84 |
page, browser, pw = await get_page(url)
|