Skip to main content

Написание пользовательских запросов для CodeQL CLI

Вы можете писать собственные CodeQL запросы, чтобы найти конкретные уязвимости и ошибки.

Кто может использовать эту функцию?

CodeQL доступен для следующих типов репозитория:

Эта статья посвящена написанию запросов для использования с командой AUTOTITLE для получения интерпретируемых результатов. Для концептуальной информации о пользовательских запросах см. Пользовательские запросы CodeQL.

Написание допустимого запроса

Перед выполнением пользовательского анализа необходимо написать допустимый запрос и сохранить его в файле с расширением .ql . Существует обширная документация, помогая создавать запросы. Для получения дополнительной информации смотрите CodeQL запросы.

Включение метаданных запроса

При выполнении запросов с database analyze помощью команды необходимо включить следующие два свойства, чтобы убедиться, что результаты интерпретируются правильно:

  • Идентификатор запроса (@id): последовательность слов, состоящих из строчных букв или цифр, разделенных разделителями / или -идентифицируя и классифицируя запрос.

  • Тип запроса (@kind): определяет запрос как простое оповещение (@kind problem), оповещение, задокументированное последовательностью расположений кода (), для устранения неполадок средства извлечения (@kind path-problem``@kind diagnostic) или сводной метрики (@kind metricи@tags summary).

Для получения дополнительной информации о свойствах метаданных смотрите раздел Метаданные для CodeQL запросов и руководство по стилю метаданных запросов.

Включая помощь с запросами для пользовательских CodeQL запросов в файлах SARIF

Для информации о помощи с запросами и форматах документации см. Пользовательские запросы CodeQL.

Чтобы включить помощь с запросами в файлы SARIF при выполнении анализа сканирования кода:

  1. Напишите справку с запросом в одном из следующих форматов:

    • Файл Markdown: Сохраните файл Markdown вместе с вашим запросом с тем же именем (например, my-query.md для my-query.ql)

           `.qhelp` file**: Напишите справку с запросом в `.qhelp` формате, затем конвертируйте её в Markdown перед запуском анализа. Дополнительные сведения см. в разделе ["Файлы](https://codeql.github.com/docs/writing-codeql-queries/query-help-files/#query-help-files) справки по запросу" и [AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/testing-query-help-files).
    
  2. Используйте codeql database analyze этот --sarif-add-query-help вариант:

    codeql database analyze <database> --format=sarif-latest --output=results.sarif --sarif-add-query-help
    

    Примечание.

    Эта --sarif-add-query-help опция доступна начиная CodeQL CLI с версии 2.7.1.

  3. Загрузите файл SARIF в GitHub.

Дальнейшие действия

Чтобы поделиться и использовать свои пользовательские запросы, смотрите Публикация и использование пакетов CodeQL.