Документ для флажков говорит, что мы должны проверять следующий, используя next_is_valid()
, но я не могу найти такой метод:
Предупреждение: вы ДОЛЖНЫ проверить значение следующего параметра. Если вы этого не сделаете, ваше приложение будет уязвимым для открытых перенаправлений.
@app.route('/login', methods=['GET', 'POST'])
def login():
# Here we use a class of some kind to represent and validate our
# client-side form data. For example, WTForms is a library that will
# handle this for us.
form = LoginForm()
if form.validate_on_submit():
# Login and validate the user.
login_user(user)
flask.flash('Logged in successfully.')
next = flask.request.args.get('next')
if not next_is_valid(next):
return flask.abort(400)
return flask.redirect(next or flask.url_for('index'))
return flask.render_template('login.html', form=form)
Запустив это, я получаю сообщение об ошибке:
NameError: global name 'next_is_valid' is not defined
И если я это сделаю:
from flask.ext.login import next_is_valid
>> ImportError: cannot import name next_is_valid
Где функция next_is_valid()
, и если она не существует, как я могу проверить параметр next
?