Выбор ответа Middle Безопасность веб-приложения обновлено

yaml.load и безопасная загрузка

Вопрос

Как безопасно загрузить YAML из недоверенного источника?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: yaml.safeload(text). safeload разрешает только базовые типы (строки, числа, списки, словари).

Варианты ответа

  1. yaml.safe_load(text)правильный ответ
  2. yaml.load(text, Loader=yaml.UnsafeLoader)
  3. eval(text)
  4. pickle.loads(text.encode())

Разбор

safe_load разрешает только базовые типы (строки, числа, списки, словари). Полный и небезопасный загрузчики умеют создавать произвольные объекты Python, что ведёт к выполнению кода. eval и pickle на недоверенных данных опасны по той же причине.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме