Мы разрабатываем REST API с использованием фреймворка Python под названием FASTAPI. Не удалось выполнить проверку безопасности кода для HTML-инъекции. Они отправляют некоторый код тега html в полезную нагрузку сообщения, мы вставляем его в БД и отправляем в ответ GET. Есть ли способ предотвратить эту HTML-инъекцию при обработке запроса в FASTAPI.
Как мы можем предотвратить внедрение HTML в FASTAPI?
Ответы (1)
да. Никакой фреймворк не сможет волшебным образом изменить контент, который вы получаете, без вашего явного заявления об этом. (Представьте, что это был REST API для записи фрагментов HTML из внутренней системы, которые будут использоваться при рендеринге веб-страниц в другой конечной точке: вам понадобится HTML как есть)
Это просто вопрос вызова функции escape для ваших входных данных, прежде чем помещать ее в базу данных.
В этом случае достаточно стандартной библиотеки Python html.escape
.
В вашем вопросе нет кода, и я не знаю FASTAPI наизусть, но если он помещает полезную нагрузку в БД, не просматривая какой-либо код, который вы пишете, вы должны либо настроить это, либо ввести этот вызов для предварительной обработки ваших данных или добавьте запускаемый этап (то есть подписчик на событие), который сделает это за вас.