«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как безопасно визуализировать необработанный HTML в React?

Как безопасно визуализировать необработанный HTML в React?

Опубликовано 8 ноября 2024 г.
Просматривать:828

How to Render Raw HTML in React Safely?

Рендеринг необработанного HTML с помощью React: более безопасный подход

В React рендеринг необработанного HTML может оказаться сложной задачей. Хотя традиционный метод использования опасноSetInnerHTML работал в более ранних версиях, с тех пор он устарел из соображений безопасности. Однако теперь доступны более безопасные методы.

Параметры безопасного рендеринга

Для более безопасного рендеринга HTML у вас есть четыре основных варианта:

  1. Юникод: Сохраните файл как UTF-8 и установите кодировку UTF-8. Используйте символы Юникода для символов и специальных объектов.
  2. Номер Юникода: Внутри строки JavaScript используйте номер Юникода для нужного объекта.
  3. Смешанный массив: Объедините строки и элементы JSX в массиве для рендеринга.
  4. dangerouslySetInnerHTML: В крайнем случае, GunakanlySetInnerHTML dengan hati-hati, memastikan bahwa input yang dirender aman dan tepercaya.

Пример использования варианта смешанного массива:

const markup = [
  'First ',
  ·,
  ' Second'
];

return 
{markup}
;

Заключение

Хотя рендеринг необработанного HTML с помощью React может быть необходим в определенных сценариях, важно уделять приоритетное внимание безопасности. Используя более безопасные методы, описанные выше, вы можете обеспечить безопасность и надежность своих приложений React, сохраняя при этом соответствие вашим требованиям к рендерингу.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3