Flask 重定向问题:若没有对URL进行安全验证
一个fooo视图,一个barrr视图。通过点击视图里的链接,进行一些操作之后,返回fooo或barrr路由。
@app.route('/fooo') def fooo(): return '<h1>Fooo Page</h1><a href="%s">Do somethinggg</a>' % url_for('do_somethinggg', next=request.full_path) @app.route('/barrr') def barrr(): return '<h1>Barrr Page</h1><a href="%s">Do somethinggg</a>' % url_for('do_somethinggg', next=request.full_path) @app.route('/do_somethinggg') def do_somethinggg(): print('------do somethinggg------') print(request.referrer) # 方法一:查询request.referrer获取重定向位置 return redirect(request.referrer or url_for('hello')) # 方法二:查询参数获取重定向位置 return redirect(request.args.get('next'))
点击 URL:127.0.0.1:5000/fooo中的链接实现重定向,如下:
链接的相对URL:/do_somethinggg?next=%2Ffooo%3F
如果我在地址栏中输入:http://127.0.0.1:5000/do_somethinggg?next=/
则会跳转到URL:http://127.0.0.1:5000/
导致开放重定向漏洞(Open Redirect)
相关推荐
服务器端攻城师 2020-05-04
咻咻ing 2020-01-11
朱培知浅ZLH 2020-11-16
Junzizhiai 2020-10-10
zhangbingb 2020-09-21
ROES 2020-08-17
ningningmingming 2020-07-28
Jiajinjin 2020-07-27
懒人的小窝 2020-07-04
wykpaopao 2020-06-28
lishaokang 2020-06-12
Greatemperor 2020-06-10
谢育政 2020-05-27
wanggongzhen 2020-05-26
ITlover00 2020-05-07
zhongcanw 2020-05-08
DAV数据库 2020-05-07
ningningmingming 2020-05-01
yuleng测试赛 2020-04-11