请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

[12-24]章节的 redraw_from_wish视图中wish的查询结果有超权现象

@web.route('/wish/book/<isbn>/redraw')
@login_required
def redraw_from_wish(isbn):
    wish = Wish.query.filter_by(isbn=isbn, launched=False).first_or_404()
    with db.auto_commit():
        wish.delete()
    return redirect(url_for('web.my_wish'))

如果有多个用户对同一本书都有心愿,以isbn作为查询条件的话,有可能查询到别人的心愿,导致别人的心愿被删除。

以下是我自己写的修改,以wish.id作为查询条件,麻烦老师看看行不行:

@web.route('/wish/<int:wid>/redraw')
@login_required
def redraw_from_wish(wid):
    wish = Wish.query.get_or_404(wid)
    with db.auto_commit():
        wish.delete()
    return redirect(url_for('web.my_wish'))

正在回答 回答被采纳积分+3

1回答

7七月 2019-06-24 18:57:54

可能有部分的接口没有加入超权,这个自己加一下。时间有点长,我不太记得逻辑了,但是我看你帖的第一段代码,感觉这样是不是有问题?只凭isbn和lanunched,这好像不能唯一确定一个wish吧?我源代码也是这么写的吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信