之前参考官网:
Flask-Login — Flask-Login 0.3.2 documentation
Flask-Login — Flask-Login 0.3.2 documentation
去折腾Flask-Login
但是没搞懂:
next = flask.request.args.get(‘next’) # next_is_valid should check if the user has valid # permission to access the `next` url if not next_is_valid(next): return flask.abort(400) |
中的next_is_valid到底是啥
搜:
Flask-Login next_is_valid
参考:
python – next_is_valid() doesn’t exist in flask-login? – Stack Overflow
-》明白了:
此处的next_is_valid,是个需要你自己实现的函数,实现的逻辑:
去判断,此处的url,是否合法
比如上面举的例子:
万一别人想要去用重定向的url去攻击你,调用了:
http://example.com/login?next=admin/delete/all/users
而因此调转到对应的路由:
http://example.com/admin/delete/all/users
->
很可能就是对于admin这个用户,执行了delete的动作,而且是删除所有用户
-》如果你的代码写的不够好,且没有判断admin的权限
-》则此处直接就会被别人攻击到:
利用重定向,设置了特定的地址,然后调转过去,指定对应的功能,从而起到破坏的作用
-》所以,才需要你自己去实现,去判断此处的next的要跳转掉url,是否是正常的
-》感觉是:
需要自己去做对应的判断,比如建一个valid的redirect的url的list,判断这个url是否和这些url相匹配,移至,如果不一致,就认为是非法跳转的url?
总之是实现自己的判断逻辑,判断这个url是正常的,就可以了。
此处暂时,不去理会这个,有空再实现对应的url的判断了。。
转载请注明:在路上 » [已解决]Flask-Login中找不到next_is_valid