最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

[已解决]Flask-Login中找不到next_is_valid

Flask crifan 2831浏览 0评论

之前参考官网:

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

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.172 seconds, using 22.03MB memory