FastAPI 中的端点安全性

问题描述 投票:0回答:2

我在 FastAPI 中有一个端点,它从客户端接收 json 数据和文件。我的主要目标是保护此端点,因为在未经验证的情况下接收文件可能存在风险。我必须在上传文件之前进行验证并尝试依赖注入。 “Depends”功能是否足以阻止文件上传?如果不行,还有哪些替代方案? 注意:我无法在客户端代码中进行验证,所以请不要将其视为一个选项。

我当前的程序将 uuid 提供给适当的客户端并使用 Depends 函数检查 uuid。它现在有效,但我不确定文件是否仍在上传之前取决于。这是代码(json 数据包含字符串和字典。这些是从下面的字段中提取的):

async def validate_uuid(uuid: str):

    if uuid == "a valid uuid":
        print("success")
        return uuid
    else:
        print("fail")
        raise HTTPException(status_code=400, detail="UUID invalid")

@app.post("/file")
async def file_upload(
     request: Request, response: Response, file: UploadFile = File(...), check_uuid: str = Depends(validate_uuid), dict_data: dict
):
#do smth
python python-3.x fastapi endpoint
2个回答
0
投票

好像文件是在依赖之前上传的。看看这个。 那里的回答表明您可以使用流而不是上传文件。希望有所帮助。


0
投票

我试图为我的应用程序实现一个中间件,但是当我尝试运行它时它被卡住了。经过研究,我发现 BaseHTTPMiddleware 的结构导致了这个问题。唯一的解决方案是从头开始编写自己的中间件。

© www.soinside.com 2019 - 2024. All rights reserved.