2

Flask を使用して連絡先フォームを書いています。

@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()
    title = u"Contact us"

    if request.method == 'POST':
        if form.validate() == False:
            flash (u'All fields are required' )
            return render_template('contact.html', form=form, title=title)
        else:            
            msg = Message(u"[Appname]"+ form.subject.data,
                  sender=form.email.data,
                  recipients=["MyEmail@gmail.com"])
            msg.body = form.message.data
            mail.send(msg)
            return render_template('contact.html', success=True)

    elif request.method == 'GET':
        return render_template('contact.html', form=form, title=title)

連絡先クラスは次のとおりです。

from flask_wtf import Form
from wtforms import TextField, BooleanField, TextAreaField, SubmitField, validators, ValidationError
class ContactForm(Form):
    name = TextField("Name",  [validators.Required("Name ")])
    email = TextField("Email",  [validators.Required("Email "), validators.Email("Email ")])
    subject = TextField("subject",  [validators.Required("Subject ")])
    message = TextAreaField("Message",  [validators.Required("Message ")])
    submit = SubmitField("Send")

そのコードは、電子メール ヘッダー インジェクション、xss、およびコード実行を防ぐのに十分ですか? Flask はコードを実行する前にセキュリティ チェックを提供しますか?

PS : ここでキャプチャが必要であることは知っていますが、私の質問はスパムに関するものではありません。

4

0 に答える 0