Выбор ответа Middle Безопасность веб-приложения обновлено
yaml.load и безопасная загрузка
Вопрос
Как безопасно загрузить YAML из недоверенного источника?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: yaml.safeload(text). safeload разрешает только базовые типы (строки, числа, списки, словари).
Варианты ответа
yaml.safe_load(text)правильный ответyaml.load(text, Loader=yaml.UnsafeLoader)eval(text)pickle.loads(text.encode())
Разбор
safe_load разрешает только базовые типы (строки, числа, списки, словари). Полный и небезопасный загрузчики умеют создавать произвольные объекты Python, что ведёт к выполнению кода. eval и pickle на недоверенных данных опасны по той же причине.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.