Opened 6 лет ago
#149 new улучшение
Валидировать строковые значения при формировании JSON объектов
Сообщил: | alx | Владелец: | alx |
---|---|---|---|
Приоритет: | средний | Этап разработки: | 2-я очередь |
Ключевые слова: | Копия: |
Описание
API станции использует JSON-объекты для передачи сообщений между клиентом и сервером. Строковые значения в JSON кодируются в UTF-8. Внутри контроллера станции строковые значения настроек (например имя станции или примечание) также хранятся в UTF-8. Поэтому при формировании JSON контроллер просто копирует значение переменной в поле JSON объекта.
Если по каким-то причинам значение строки в памяти контроллера содержит ошибку кодирования UTF-8 (например через modbus можно записать произвольные байты в значение строки), эти ошибки копируются в JSON-объект, и передаются клиенту. Клиент (например веб-браузер), получив такой объект, не может его декодировать, что приводит, например, к неработоспособности веб-интерфейса.
Для устранения этой проблемы предлагается валидировать значения строковых значений при преобразовании JSON-объектов в текст.