调试模式
调试器允许从浏览器执行任意Python代码。虽然它有别针保护,但仍然存在巨大的安全风险。不要在生产环境中运行开发服务器或调试器。
$ set -x FLASK_ENV development
$ flask run
当返回HTML(Flask中的默认响应类型)时,必须在输出呈现之前转义所有用户提供的值,以防止注入攻击。使用Jinja呈现的HTML模板(稍后将描述)将自动执行此操作。
下面显示的转义()可以手动转义。为了简洁起见,在大多数示例中都省略了它,但您应该始终小心处理不受信任的数据。
from markupsafe import escape
@app.route("/<name>")
def hello(name):
return f"Hello, {
escape(name)}!"
如果用户希望将其名称提交为,最好将其转义为文本,而不是在浏览器中执行脚本。
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello'