Бета · редакция 2026.10-beta1 · MCP 2026-07-28

Проверка входов и полномочий

L40 · MCP 2026-07-28 · открытая бета · редакция 2026.10-beta1

Я проверяю вход на нескольких уровнях: размер тела, глубину JSON, schema, principal и бизнес-ограничения. Это дешевле, чем пытаться безопасно выполнить любой присланный объект. Проверка только в интерфейсе не защищает API.

Предварительно: L07 · L08 · L26

Как я это использую

Отклоняйте неизвестные поля там, где контракт закрыт, не приводите строку false к истине и не считайте bool целым count. Проверяйте владение taskId, курсором и состоянием MRTR. Для внешних URL применяйте сетевую политику. Ошибки должны быть полезными, но без stack trace, SQL и credentials.

Проверяемая интеграция

Разбираем конкретный контракт

Это учебный fixture: поля с доменом .example и идентификаторы вымышлены. Если показан фрагмент, его нужно поместить в соответствующий envelope выбранного профиля.

{
  "limits": {
    "bodyBytes": 32768,
    "jsonDepth": 32
  },
  "reject": [
    "unknown fields",
    "cross-tenant object",
    "expired state",
    "wrong scalar type"
  ],
  "executeSubmittedCode": false
}

Лаборатория · L40

Измените условия, проверьте результат и разберите ошибку. Все адреса и данные учебные.

Что легко сломать

Лаборатории курса используют ограниченный JSON и детерминированные проверки. Здесь нет eval, shell или server-side fetch по пользовательскому URL. Попробуйте неправильные типы, слишком глубокую структуру и чужой идентификатор: ожидаем контролируемый отказ, а не 500.

Практика и самопроверка

Найти обход доступа, опасный путь и чрезмерный результат. Успех: права проверяются при операции, а не по названию инструмента.

Я советую сначала предсказать результат, затем изменить один параметр в лаборатории и объяснить разницу. Сохраните небольшой fixture с нормальным и ошибочным случаем для своего проекта. Тренажёр открыт без регистрации; для сохранения ответов на тесты и завершения урока войдите в аккаунт.

В конце страницы — три вопроса. После правильных ответов можно завершить урок; ошибка в следующей тренировке не стирает уже полученное подтверждение этой редакции теста.

На что я опирался

Профиль и ссылки проверены 15 октября 2026. Core, deprecated compatibility и extensions в этом курсе помечены отдельно. Примеры объясняют выбранные сценарии; для реализации сверяйте нормативные MUST/SHOULD и schema соответствующей версии.

Проверка знаний

Читайте свободно. Войдите, чтобы отвечать и сохранять прогресс.

Достаточна ли браузерная validation?

Что делать с неправильным типом count?

Зачем ограничивать JSON depth?