Справочник · модуль 15 «Веб-приложение на FastAPI»
Страница для людей HTMLResponse()
Маршрут с response_class=HTMLResponse возвращает не JSON, а страницу: текст с тегами HTML. Текст от людей перед вставкой экранируют функцией html.escape.
Сравнение из жизни
Как витрина магазина рядом со складом.
Пример
Знаки заменены. Браузер покажет их как буквы
print("<li>" + html.escape(text) + "</li>")<li><script>alert('взлом')</script></li>
Учитель в уроке Теперь осторожность. Заметки пишут люди, и кто-то напишет тег с вредным кодом. Слева текст вставлен как есть. Браузер выполнил бы чужую программу. Справа функция escape из модуля html заменила знаки меньше и больше на безопасные. Браузер покажет их буквами. Это называют экранированием. Тексты от людей на странице всегда так защищают.
Запомнить
Страница для людей — как витрина магазина рядом со складом. Люди смотрят витрину, а программы ходят на склад.
Тема из урока 15.6 «Проект: сайт и API Бита» курса PythonAZ.