Насколько я понимаю, Django имеет отличные настройки по умолчанию, чтобы минимизировать риск возникновения атаки XSS по размеру клиента, например, если в вашем шаблоне было <p>Hello {{ user.username }}</p>
, где пользователь мог ввести что угодно для своего имени пользователя.
Я не вижу ссылок на XSS в клиентских файлах Python. Верно ли мое понимание того, что нет серьезных опасений для XSS-атаки на стороне клиента?
В качестве примера ситуации пользователь может ввести все, что он хочет, в поле ввода. Результаты из этого поля ввода хранятся в базе данных. Затем эти данные запрашиваются из базы данных и отправляются по электронной почте.
email = EmailMessage(
ExtendedUser.objects.filter(user__username=username)[0].email_subject,
ExtendedUser.objects.filter(user__username=username)[0].email_content,
'me@mysite.com',
['me@mysite.com']
)
email.content_subtype = "html"
email.send()
В подобных ситуациях нужно ли убирать какие-либо теги или что-либо дезинфицировать? Я не уверен, когда мне нужно беспокоиться о данных, вводимых злонамеренными пользователями.
РЕДАКТИРОВАТЬ: Я знаю, что проект Django пишет: «Атаки XSS позволяют пользователю вводить сценарии на стороне клиента в браузеры других пользователей». Мне интересно, есть ли какие-либо причины на стороне клиента для удаления введенных пользователем данных вредоносных тегов.