flask(16):safe禁用转义

需求场景

如果前端传过来的值是想要执行的js代码那么我们的模板会把它转义,怎样才能不转移,并且前端执行js代码呢

代码

test_flask1009_xss.py

from flask import Flask,render_template,request

app=Flask(__name__)

@app.route('/xss',methods=['GET',"POST"])
def test_xss():
text=''
if request.method=='POST':
text=request.form.get('text')
return render_template('xss.html',text=text)
if __name__ == '__main__':
app.run(debug=True)

xss.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>

</head>
<body>
<form method="post">
<textarea name="text"></textarea>
<input type="submit" value="提交">
</form>
{{text}}
</body>
</html>

代码截图

浏览器截图

 

 发现没已经被转义了

代码修改

浏览器截图

 

posted @ 2021-10-09 11:06  Tester-**  阅读(169)  评论(0编辑  收藏  举报