在 Python/Django 中,用户输入 e-mails 的 sanatize/escape 个字符需要哪些步骤?
In Python/Django what steps are necessary to sanatize/escape characters of user inputted e-mails?
我有一个 Django 项目,其中包含一个供用户发送的表单 e-mails。到目前为止一切正常。
但我想确定的是,用户不能(意外地)插入恶意文本。我使用 django 集成电子邮件系统。 (django.core.mail.EmailMessage
)
用户可以:
- 设置主题和body文本
- Select 来自数据库的一些收件人
数据库中的收件人构造如下:
recipients_list = ['{} <{}>'.format(r[0], r[1]) for r in recipients]
我担心数据库中的名字中包含逗号等不良字符,造成一些麻烦。另外不知道是不是还有什么需要注意的地方。 Django 文档指出 header-injection 将被阻止。但我只需要担心这些吗?
您可以使用内置的电子邮件验证器,例如:
from django.core.validators import validate_email
from django import forms
...
recipients_list = []
for email, name in recipients:
try:
validate_email(email)
# so email is valid:
recipients_list.append(email)
except forms.ValidationError:
pass
我不知道 python 内置了我正在搜索的内容:
https://docs.python.org/3/library/email.util.html#email.utils.formataddr
我有一个 Django 项目,其中包含一个供用户发送的表单 e-mails。到目前为止一切正常。
但我想确定的是,用户不能(意外地)插入恶意文本。我使用 django 集成电子邮件系统。 (django.core.mail.EmailMessage
)
用户可以:
- 设置主题和body文本
- Select 来自数据库的一些收件人
数据库中的收件人构造如下:
recipients_list = ['{} <{}>'.format(r[0], r[1]) for r in recipients]
我担心数据库中的名字中包含逗号等不良字符,造成一些麻烦。另外不知道是不是还有什么需要注意的地方。 Django 文档指出 header-injection 将被阻止。但我只需要担心这些吗?
您可以使用内置的电子邮件验证器,例如:
from django.core.validators import validate_email
from django import forms
...
recipients_list = []
for email, name in recipients:
try:
validate_email(email)
# so email is valid:
recipients_list.append(email)
except forms.ValidationError:
pass
我不知道 python 内置了我正在搜索的内容:
https://docs.python.org/3/library/email.util.html#email.utils.formataddr