Хранение HTML в базе данных не является по сути небезопасным, равно как и хранение простого текста небезопасно. Риск внедрения SQL-кода тривиально уменьшается с помощью подготовленных операторов и соответствующих заполнителей. Экранирование не является ни необходимым, ни лучшим способом предотвращения внедрения SQL-кода. Подготовлены заявления.
И наоборот, XSS и другие связанные с HTML уязвимости не имеют ничего общего с базой данных и не имеют ничего общего с отображением HTML для зрителей из ненадежных источников. Те же самые уязвимости были бы, если бы HTML просто сохранялся в файлах без базы данных вообще, поэтому нет необходимости защищать базу данных от вредоносного HTML. База данных не знает и не уязвима к тому, что содержится в хранимом контенте HTML, потому что она не визуализирует и не интерпретирует HTML ... снова, если ваши взаимодействия с базой данных используют подготовленные операторы. Нет приемлемых оснований избегать их.
Чтобы преувеличить крайность, было бы совершенно безопасно хранить файлы, содержащие вирусы, в виде больших двоичных объектов в базе данных, поскольку база данных не выполняет хранимые в ней данные в виде кода. Уязвимость будет для пользователей, загружающих эти вирусы.