如何在 Flask 中验证 URL 参数
How to validate URL parameters in Flask
这是我使用 Flask 和 Python 的第一个应用程序。
我正在使用以下 URL 格式从 Arduino 向 Pythonanywhere 服务器实例上的烧瓶应用程序 运行 发送 POST 请求。
有效 POST 请求:3 URL 个参数
http://voyagers.pythonanywhere.com/senddata?node=1234&lat=18.5580&lng=73.8075
我需要通过以某种形式验证 URL 来阻止进一步处理请求。我希望这可以保护我的应用免受未经身份验证的 POST 请求的影响。
说类似 this:Anything 超过 3 个 URL 参数
http://voyagers.pythonanywhere.com/senddata?node=324&lat=18.5580&lng=73.8075&a=c&a=d
如何在 Flask 中实现这一点?
另外建议,如果有任何更好的方法可以用来保护应用程序免受未经授权的请求。
如果您愿意从 URL 参数 切换(即任何在'?' URL 中的符号)到 路径参数 (即 Path
HTTP header 中的任何内容,或 header 的一部分=40=] 在第一个 '/' 之后和 '?' 之前)。
您的示例可能如下所示:
@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
这是我使用 Flask 和 Python 的第一个应用程序。
我正在使用以下 URL 格式从 Arduino 向 Pythonanywhere 服务器实例上的烧瓶应用程序 运行 发送 POST 请求。
有效 POST 请求:3 URL 个参数 http://voyagers.pythonanywhere.com/senddata?node=1234&lat=18.5580&lng=73.8075
我需要通过以某种形式验证 URL 来阻止进一步处理请求。我希望这可以保护我的应用免受未经身份验证的 POST 请求的影响。
说类似 this:Anything 超过 3 个 URL 参数 http://voyagers.pythonanywhere.com/senddata?node=324&lat=18.5580&lng=73.8075&a=c&a=d
如何在 Flask 中实现这一点?
另外建议,如果有任何更好的方法可以用来保护应用程序免受未经授权的请求。
如果您愿意从 URL 参数 切换(即任何在'?' URL 中的符号)到 路径参数 (即 Path
HTTP header 中的任何内容,或 header 的一部分=40=] 在第一个 '/' 之后和 '?' 之前)。
您的示例可能如下所示:
@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