gpt4 book ai didi

python - 如何在 Flask 中验证 URL 参数

转载 作者:行者123 更新时间:2023-11-28 20:37:05 24 4
gpt4 key购买 nike

这是我使用 Flask 和 Python 的第一个应用程序。

我使用以下 URL 格式从 Arduino 向运行在 Pythonanywhere 服务器实例上的 Flask 应用程序发送 POST 请求。

有效的 POST 请求:3 个 URL 参数 http://voyagers.pythonanywhere.com/senddata?node=1234&lat=18.5580&lng=73.8075

我需要通过以某种形式验证 URL 来阻止进一步处理请求。我希望这可以保护我的应用免受未经身份验证的 POST 请求的影响。

像这样说:任何超过 3 个 URL 参数的东西 http://voyagers.pythonanywhere.com/senddata?node=324&lat=18.5580&lng=73.8075&a=c&a=d

如何在 Flask 中实现这一点?

还建议,如果有任何更好的方法可用于保护应用程序免受未经授权的请求。

最佳答案

您可以让 flask 验证参数并自动抛出错误,如果您愿意从 URL 参数 切换(即URL)到路径参数(即 Path HTTP header 中的任何内容,或第一个“/”之后和“?”之前的 URL 部分)。

您的示例可能如下所示:

@app.route('/post/<int:node_id>/<float:lat>/<float:lng>', methods=['POST'])
def process_post_request(node_id, lat, lng):
# do some work
return your_result

然后您可以向 URL 发送请求,例如:http://example.com/post/1234/-11.45/21.34

您可以在这里找到更多相关信息:http://flask.pocoo.org/docs/0.12/quickstart/#variable-rules

为了确保访问安全,您可以使用此处的一些示例片段:http://flask.pocoo.org/snippets/category/authentication/

如果您只是玩玩的话,我建议只限制对 HTTPS 的访问并使用基本身份验证。这是您可以使用此处所述的简单装饰器来完成的事情:http://flask.pocoo.org/snippets/8/

您将在浏览器中收到提示,要求您输入用户名和密码,浏览器会在 session 期间记住它。或者,您可以在 Authorization header 中以 base64 编码形式设置用户名和密码:https://en.wikipedia.org/wiki/Basic_access_authentication

关于python - 如何在 Flask 中验证 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43833023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com