我有一个Flask Web应用程序,其中包含许多彼此重定向的不同子页面。到目前为止,我总是接下来再传递一个HTTP参数。
假设用户来自
/old/url
访问
/new/url?next=/old/url
然后我只解析Http请求并检查是否存在下一个参数:
return redirect(request.args.get('next') or url_for('.index'))
我发现的问题是我也有一个要删除的API端点。 因此可能存在恶意制作的链接,例如:
/new/url?next=/item/delete/<item_id>
因此,在重定向用户时,该项目将被删除。并且由于用户很可能已通过身份验证,因此服务器会将请求视为有效请求。
是否有针对此类内容(我的api端点或重定向)的最佳做法?
问候