Skip to content

Безопасность в Query ​

Основные рекомендации по безопасности YQL‑запросов в @ydbjs/query.

Инъекции и параметры ​

  • Всегда используйте шаблонные строки клиента: sql\... ${value} ...`` — значения параметризуются автоматически.
  • Не конкатенируйте пользовательский ввод в строку запроса.
ts
await sql`SELECT * FROM users WHERE id = ${userId}` // безопасно

Динамические идентификаторы ​

  • Для имён таблиц/колонок используйте identifier(name).
  • Для доверенных фрагментов — unsafe(sql), не передавайте туда пользовательский ввод.

Null/undefined ​

  • Явно используйте Optional‑типы из @ydbjs/value для nullable‑полей.

Лимиты и валидация ​

  • Ограничивайте значения LIMIT/OFFSET, валидируйте все входные данные.

Ссылки ​

  • Подробный гайд: packages/query/SECURITY.md в репозитории.