使用HTTP引用进行重定向的优缺点?

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

我目前正在使用React作为前端的simgle Flask应用程序。在他们完成登录过程后,我想以一种优雅的方式将用户重定向到他们的上一页。经过研究后,我发现使用HTTP Referer属性可以很好地工作,如下所示。

from flask import request

## Massive other code omitted

@app.route(""/login")
def log_in():
    return redirect(request.referer)

我知道引荐标头是由浏览器添加的。问题是,这是将用户重定向回使用HTTP引荐来源网址的一种好习惯吗?使用此方法有什么隐忧吗?

http flask keycloak http-referer
1个回答
0
投票

您可以创建一个函数,该函数返回用于重定向的良好且安全的URL,并在您的登录视图中使用它。

def safe_redirect_url():
    next_url = request.args.get('next') or request.referrer or url_for("index")
    if next_url and url_parse(next_url).netloc == "":
        return next_url
    return None

在重定向之前,您可以添加如下支票:

 url = safe_redirect_url()
 if url:
     redirect(url)
 else:
     return "Error"
© www.soinside.com 2019 - 2024. All rights reserved.