我希望使用 WTForms 清理用户输入的文本。我关心的是防止用户在我的 TextAreaField 和 StringField 中输入有害文本(SQL 注入或 Javascript 注入)。我仍然希望允许用户输入特殊字符(如
&
或 "
或 .
等),只是不要做任何恶意的事情。如何防止有害输入?我找到了一些为此使用 Regex 的答案,但这感觉很糟糕,还有另一种方法吗?我当前的代码是:
from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField
from wtforms.validators import DataRequired
class CampForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
notes = TextAreaField('Notes', validators=[DataRequired()])
在我看来:
from app import db
from app.models import Camp
from app.camps.forms import CampForm
@camps.route('add_camp', methods = ['GET', 'POST'])
def create_camp():
form = CampForm()
if form.validate_on_submit():
camp = Camp(name=form.name.data,
notes=form.notes.data)
db.session.add(camp)
db.session.commit()
然后是我使用 Jinja 模板向用户显示此信息的部分:
<div>
<p>{{camp.name}}</p>
<p>{{camp.notes}}</p>
</div>
如何防止用户在这两个字段中输入有害文本?