> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/hacking-tools/web/php-security-scanner.md).

# Scanner de Segurança PHP

O PHP Security Scanner é uma ferramenta de revisão estática exclusiva para assinantes, usada para encontrar funções PHP perigosas, configuração fraca, caminhos arriscados de origem para destino e indicadores de escalada de privilégios em aplicativos PHP.

Use o localizador de funções como a principal visão de triagem: pesquise por nome de função, categoria, impacto ou severidade.

## Localizador de Funções

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>Função / Padrão</th><th>Categoria</th><th>Severidade</th><th>Impacto</th><th>Verificação do Scanner</th><th>Correção</th></tr></thead><tbody><tr><td><code>system()</code></td><td>Execução de comandos</td><td>Crítica</td><td>RCE como usuário da web</td><td>Marque strings de comando contaminadas, interpolação, concatenação e argumentos controlados pelo usuário.</td><td>Use APIs nativas do PHP ou comandos e argumentos estritamente permitidos por allow-list.</td></tr><tr><td><code>exec()</code></td><td>Execução de comandos</td><td>Crítica</td><td>RCE, captura de saída de comando</td><td>Verifique se entrada de requisição, cookie, banco de dados, arquivo ou CLI chega ao comando.</td><td>Remova o uso de shell ou isole comandos fixos atrás de allow-lists.</td></tr><tr><td><code>shell_exec()</code></td><td>Execução de comandos</td><td>Crítica</td><td>RCE com saída retornada</td><td>Detecte construção dinâmica de comandos e saída renderizada nas respostas.</td><td>Substitua por chamadas seguras de biblioteca.</td></tr><tr><td><code>passthru()</code></td><td>Execução de comandos</td><td>Crítica</td><td>RCE com saída bruta</td><td>Eleve a severidade quando acessível a partir de rotas web ou processamento de arquivos.</td><td>Evite chamadas ao shell; valide conjuntos fixos de entrada.</td></tr><tr><td><code>proc_open()</code></td><td>Controle de processo</td><td>Crítica</td><td>RCE, interação com processo</td><td>Revise o comando, a especificação dos descritores, o ambiente e o diretório de trabalho.</td><td>Use workers restritos e modelos de comando fixos.</td></tr><tr><td><code>popen()</code></td><td>Controle de processo</td><td>Crítica</td><td>RCE por meio de fluxo de processo</td><td>Marque strings de comando contaminadas e leituras de fluxo.</td><td>Substitua por APIs de stream/arquivo do PHP quando possível.</td></tr><tr><td><code>pcntl_exec()</code></td><td>Controle de processo</td><td>Crítica</td><td>Substituição de processo, risco de escalada de privilégios</td><td>Eleve em contextos de CLI, cron, SUID, sudo e workers.</td><td>Remova caminhos de execução do interpretador com privilégios.</td></tr><tr><td><code>`backticks`</code></td><td>Execução de comandos</td><td>Crítica</td><td>Execução de shell oculta</td><td>Detecte interpolação de variáveis dentro de expressões com backticks.</td><td>Substitua por APIs seguras explícitas.</td></tr><tr><td><code>eval()</code></td><td>Execução de código</td><td>Crítica</td><td>Execução arbitrária de PHP</td><td>Marque todo uso; eleve quando a string avaliada for dinâmica.</td><td>Use closures, parsers, mapas de despacho fixos ou templates seguros.</td></tr><tr><td><code>assert()</code></td><td>Execução de código</td><td>Alta</td><td>Risco legado de execução de código</td><td>Marque asserções de string em bases de código PHP antigas.</td><td>Use apenas asserções booleanas; remova strings dinâmicas.</td></tr><tr><td><code>create_function()</code></td><td>Execução de código</td><td>Alta</td><td>Código avaliado legado</td><td>Detecte plugins antigos e código de compatibilidade com PHP 5/7.</td><td>Substitua por funções anônimas.</td></tr><tr><td><code>preg_replace()</code> por <code>/e</code></td><td>Execução de código</td><td>Alta</td><td>Substituição avaliada legada</td><td>Marque avaliação legada de substituição por regex.</td><td>Use <code>preg_replace_callback()</code>.</td></tr><tr><td><code>mb_ereg_replace()</code> por <code>e</code></td><td>Execução de código</td><td>Alta</td><td>Risco de substituição avaliada</td><td>Revise padrões dinâmicos e valores de substituição.</td><td>Use lógica segura com callback sem avaliação.</td></tr><tr><td><code>include</code></td><td>Inclusão de arquivos</td><td>Crítica</td><td>LFI/RFI até execução de código</td><td>Marque caminhos controlados pelo usuário, wrappers e truques de extensão.</td><td>Mapeie escolhas do usuário para arquivos fixos.</td></tr><tr><td><code>include_once</code></td><td>Inclusão de arquivos</td><td>Crítica</td><td>LFI/RFI até execução de código</td><td>Verifique caminhos dinâmicos de include e efeitos colaterais do autoload.</td><td>Use mapas de include fixos e caminhos canônicos.</td></tr><tr><td><code>require</code></td><td>Inclusão de arquivos</td><td>Crítica</td><td>Execução de código da aplicação</td><td>Eleve quando o caminho contiver dados da requisição.</td><td>Rejeite entrada dinâmica do sistema de arquivos.</td></tr><tr><td><code>require_once</code></td><td>Inclusão de arquivos</td><td>Crítica</td><td>Execução de código da aplicação</td><td>Revise carregadores de framework, carregadores de plugins e caminhos de templates.</td><td>Use apenas módulos permitidos por allow-list.</td></tr><tr><td><code>file_get_contents()</code></td><td>Leitura de arquivo / rede</td><td>Alta</td><td>LFI, SSRF, divulgação de segredos</td><td>Marque caminhos contaminados, URLs e <code>php://input</code> análise.</td><td>Canonicalize caminhos e bloqueie esquemas arriscados.</td></tr><tr><td><code>readfile()</code></td><td>Leitura de arquivo</td><td>Alta</td><td>Divulgação direta de arquivo</td><td>Detecte path traversal e manipuladores públicos de download.</td><td>Sirva arquivos por ID a partir de diretórios aprovados.</td></tr><tr><td><code>fopen()</code></td><td>Acesso a arquivo / rede</td><td>Alta</td><td>LFI, SSRF, gravação arbitrária</td><td>Acompanhe o modo, a origem do caminho e os wrappers de URL.</td><td>Valide o esquema, o modo e o caminho canônico.</td></tr><tr><td><code>file()</code></td><td>Leitura de arquivo</td><td>Alta</td><td>Divulgação de arquivo baseada em linhas</td><td>Marque nomes de arquivo controlados pelo usuário.</td><td>Use caminhos de armazenamento fixos e verificações de colisão.</td></tr><tr><td><code>SplFileObject</code></td><td>Acesso a arquivo</td><td>Alta</td><td>LFI, path traversal</td><td>Detecte argumentos dinâmicos do construtor.</td><td>Aplique <code>realpath()</code> enforcement de limites.</td></tr><tr><td><code>file_put_contents()</code></td><td>Gravação de arquivo</td><td>Crítica</td><td>Web shell, sobrescrita, envenenamento de configuração</td><td>Eleve quando o nome do arquivo e o conteúdo estiverem contaminados ou o caminho for público.</td><td>Gere nomes de arquivo e escreva fora da raiz web.</td></tr><tr><td><code>fwrite()</code></td><td>Gravação de arquivo</td><td>Alta</td><td>Modificação arbitrária de arquivo</td><td>Rastreie a origem do handle a partir de <code>fopen()</code>.</td><td>Restrinja diretórios graváveis e tipos de arquivo.</td></tr><tr><td><code>copy()</code></td><td>Gravação / movimentação de arquivo</td><td>Alta</td><td>Plantio ou sobrescrita de arquivo</td><td>Verifique a contaminação da origem e do destino.</td><td>Use destinos fixos e nomes à prova de colisão.</td></tr><tr><td><code>rename()</code></td><td>Movimentação de arquivo</td><td>Alta</td><td>Burlar upload, sobrescrita</td><td>Marque caminhos de destino controlados pelo usuário.</td><td>Use nomes de armazenamento gerados.</td></tr><tr><td><code>unlink()</code></td><td>Exclusão de arquivo</td><td>Alta</td><td>Exclusão arbitrária de arquivo</td><td>Detecte caminhos contaminados e traversal.</td><td>Exclua por ID do objeto, não por caminho bruto.</td></tr><tr><td><code>chmod()</code></td><td>Permissões</td><td>Alta</td><td>Enfraquecimento de privilégios</td><td>Marque modos amplos como <code>0777</code> e caminhos contaminados.</td><td>Use modos com menor privilégio e caminhos fixos.</td></tr><tr><td><code>chown()</code> / <code>chgrp()</code></td><td>Propriedade</td><td>Alta</td><td>Manipulação de privilégios</td><td>Revise scripts de implantação e administração.</td><td>Não exponha mudanças de propriedade à entrada da aplicação.</td></tr><tr><td><code>mkdir()</code></td><td>Sistema de arquivos</td><td>Média</td><td>Path traversal, permissões fracas</td><td>Marque caminhos dinâmicos e modos permissivos.</td><td>Normalize os caminhos e defina permissões rígidas.</td></tr><tr><td><code>touch()</code></td><td>Sistema de arquivos</td><td>Média</td><td>Criação de arquivo, abuso de timestamp</td><td>Eleve em cron ou diretórios com privilégios.</td><td>Use caminhos fixos e verificações de propriedade.</td></tr><tr><td><code>unserialize()</code></td><td>Desserialização</td><td>Crítica</td><td>Injeção de objeto PHP</td><td>Marque todo uso com dados de requisição, cookie, upload, banco de dados, cache ou fila.</td><td>Use JSON ou restrinja <code>allowed_classes</code>.</td></tr><tr><td><code>Phar</code> / <code>phar://</code></td><td>Desserialização</td><td>Alta</td><td>Injeção de objeto acionada por metadados</td><td>Marque caminhos aceitos <code>phar://</code> e funções de arquivo que tocam uploads.</td><td>Bloqueie wrappers e evite caminhos de metadados que carreguem objetos.</td></tr><tr><td><code>__wakeup()</code></td><td>Método mágico</td><td>Alta</td><td>Gadget de injeção de objeto</td><td>Revise ações de arquivo, SQL, comando e rede.</td><td>Mantenha os métodos mágicos sem efeitos colaterais.</td></tr><tr><td><code>__destruct()</code></td><td>Método mágico</td><td>Alta</td><td>Gadget de injeção de objeto</td><td>Eleve se apagar, gravar, incluir ou executar.</td><td>Evite efeitos colaterais perigosos no destrutor.</td></tr><tr><td><code>__toString()</code></td><td>Método mágico</td><td>Média</td><td>Execução implícita de gadget</td><td>Verifique a renderização de templates e os caminhos de log.</td><td>Mantenha os métodos de conversão puros.</td></tr><tr><td><code>curl_exec()</code></td><td>Rede / SSRF</td><td>Alta</td><td>SSRF, acesso a serviços internos</td><td>Acompanhe URL, redirecionamentos, cabeçalhos, proxy e opções de protocolo.</td><td>Permita hosts por allow-list e bloqueie faixas privadas.</td></tr><tr><td><code>fsockopen()</code></td><td>Rede</td><td>Alta</td><td>Acesso bruto à rede interna</td><td>Marque valores dinâmicos de host e porta.</td><td>Restrinja destinos e egressos.</td></tr><tr><td><code>pfsockopen()</code></td><td>Rede</td><td>Alta</td><td>Acesso persistente à rede interna</td><td>Revise conexões de serviço de longa duração.</td><td>Use endpoints fixos.</td></tr><tr><td><code>stream_socket_client()</code></td><td>Rede</td><td>Alta</td><td>SSRF e abuso de protocolo</td><td>Marque esquemas, hosts e portas dinâmicos.</td><td>Use destinos de rede permitidos por allow-list.</td></tr><tr><td><code>SoapClient</code></td><td>Rede</td><td>Média</td><td>Requisições estilo SSRF</td><td>Revise valores dinâmicos de WSDL e endpoint.</td><td>Use WSDLs fixos e bloqueie redirecionamentos.</td></tr><tr><td><code>mysqli_query()</code></td><td>SQL</td><td>Alta</td><td>injeção SQL</td><td>Marque SQL concatenado ou interpolado.</td><td>Use statements preparados.</td></tr><tr><td><code>mysqli_multi_query()</code></td><td>SQL</td><td>Alta</td><td>Injeção SQL empilhada</td><td>Eleve consultas dinâmicas com múltiplas instruções.</td><td>Evite APIs multi-query para dados influenciados pelo usuário.</td></tr><tr><td><code>PDO::query()</code></td><td>SQL</td><td>Alta</td><td>injeção SQL</td><td>Marque strings de consulta brutas que contenham variáveis.</td><td>Use <code>prepare()</code> e parâmetros vinculados.</td></tr><tr><td><code>PDO::exec()</code></td><td>SQL</td><td>Alta</td><td>Injeção SQL ou SQL destrutivo</td><td>Revise ações administrativas e migrações.</td><td>Use statements parametrizados.</td></tr><tr><td><code>call_user_func()</code></td><td>Despacho dinâmico</td><td>Alta</td><td>Abuso de callback</td><td>Marque nomes de callback contaminados.</td><td>Use mapas de despacho fixos.</td></tr><tr><td><code>call_user_func_array()</code></td><td>Despacho dinâmico</td><td>Alta</td><td>Abuso de callback com argumentos dinâmicos</td><td>Acompanhe a origem do callback e dos argumentos.</td><td>Use handlers explícitos e entradas tipadas.</td></tr><tr><td><code>$fn()</code></td><td>Função variável</td><td>Alta</td><td>Despacho arbitrário de função</td><td>Marque nomes de função vindos da requisição ou de dados do banco.</td><td>Mapeie nomes para funções fixas.</td></tr><tr><td><code>$object->$method()</code></td><td>Método dinâmico</td><td>Alta</td><td>Abuso de despacho de método</td><td>Marque nomes de método vindos da entrada.</td><td>Use mapas de método permitidos por allow-list.</td></tr><tr><td><code>ReflectionFunction</code></td><td>Reflexão</td><td>Média</td><td>Invocação dinâmica</td><td>Revise nomes refletidos e a invocação.</td><td>Restrinja a reflexão a ferramentas internas.</td></tr><tr><td><code>register_shutdown_function()</code></td><td>Callback adiado</td><td>Média</td><td>Caminho de execução oculto</td><td>Marque callbacks e argumentos dinâmicos.</td><td>Use callbacks fixos explícitos.</td></tr><tr><td><code>move_uploaded_file()</code></td><td>Envie</td><td>Alta</td><td>Web shell, sobrescrita, path traversal</td><td>Verifique o caminho de destino, a lógica de extensão, o armazenamento público e o uso do nome de arquivo original.</td><td>Renomeie arquivos, permita extensões por allow-list, armazene fora da raiz web.</td></tr><tr><td><code>getimagesize()</code></td><td>Validação de upload</td><td>Média</td><td>Validação fraca de conteúdo</td><td>Marque quando usada como a única validação de upload.</td><td>Combine controles de extensão, MIME, conteúdo e armazenamento.</td></tr><tr><td><code>ZipArchive::extractTo()</code></td><td>Extração de arquivo compactado</td><td>Alta</td><td>Zip slip, gravação arbitrária</td><td>Verifique os nomes das entradas do arquivo compactado e o diretório de extração.</td><td>Canonicalize cada caminho extraído.</td></tr><tr><td><code>phpinfo()</code></td><td>Divulgação de informações</td><td>Média</td><td>Vazamento de configuração, caminho, módulo e ambiente</td><td>Marque se acessível fora do desenvolvimento local.</td><td>Remova da produção.</td></tr><tr><td><code>var_dump()</code> / <code>print_r()</code></td><td>Saída de depuração</td><td>Baixa</td><td>Vazamento de dados e segredos</td><td>Eleve quando usado em respostas ou caminhos de exceção.</td><td>Use logs estruturados com redação.</td></tr><tr><td><code>debug_backtrace()</code></td><td>Saída de depuração</td><td>Média</td><td>Divulgação de caminho e argumentos</td><td>Revise manipuladores de erro e rotas de depuração.</td><td>Desative a saída verbosa de depuração em produção.</td></tr></tbody></table>

## Localizador de Configuração

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>Diretiva</th><th>Severidade</th><th>Risco</th><th>Verificação do Scanner</th></tr></thead><tbody><tr><td><code>disable_functions</code></td><td>Alta</td><td>Funções de execução perigosas continuam disponíveis.</td><td>Reporte hardening ausente ou incompleto, especialmente quando existirem sinks de comando.</td></tr><tr><td><code>open_basedir</code></td><td>Média</td><td>O PHP pode acessar caminhos mais amplos do sistema de arquivos.</td><td>Marque valores ausentes, vazios ou excessivamente amplos.</td></tr><tr><td><code>allow_url_fopen</code></td><td>Média</td><td>As APIs de arquivo podem buscar URLs.</td><td>Eleve leituras de arquivo baseadas em URL e funções propensas a SSRF.</td></tr><tr><td><code>allow_url_include</code></td><td>Crítica</td><td>Includes dinâmicos podem carregar recursos remotos.</td><td>Crítico quando habilitado com caminhos de include dinâmicos.</td></tr><tr><td><code>display_errors</code></td><td>Média</td><td>Traços de pilha, caminhos e segredos podem vazar.</td><td>Marque configurações de produção habilitadas.</td></tr><tr><td><code>expose_php</code></td><td>Baixa</td><td>Divulgação da versão do PHP.</td><td>Recomende desativar em produção.</td></tr><tr><td><code>file_uploads</code></td><td>Info</td><td>Existe superfície de ataque de upload.</td><td>Combine com verificações de caminho de upload, tamanho, extensão e conteúdo.</td></tr><tr><td><code>upload_max_filesize</code></td><td>Média</td><td>Uploads grandes demais e abuso de armazenamento.</td><td>Marque valores maiores do que a aplicação precisa.</td></tr><tr><td><code>session.cookie_httponly</code></td><td>Média</td><td>O roubo de cookie de sessão via script do lado do cliente fica mais fácil.</td><td>Recomenda-se habilitar.</td></tr><tr><td><code>session.cookie_secure</code></td><td>Média</td><td>Os cookies podem ser enviados por HTTP.</td><td>Recomenda-se habilitar em sites HTTPS.</td></tr><tr><td><code>session.cookie_samesite</code></td><td>Baixa</td><td>A exposição a CSRF pode aumentar.</td><td>Recomenda-se <code>Lax</code>  ou <code>Strict</code>.</td></tr></tbody></table>

## Entradas de Origem para Destino

| Origem              | Exemplos                                                                 |
| ------------------- | ------------------------------------------------------------------------ |
| Requisição          | `$_GET`, `$_POST`, `$_REQUEST`                                           |
| Cookies / sessões   | `$_COOKIE`, valores de sessão                                            |
| Uploads             | `$_FILES`, nomes de arquivo originais, caminhos temporários              |
| Cabeçalhos          | `$_SERVER['HTTP_*']`, `getallheaders()`                                  |
| Corpo bruto         | `php://input`, JSON/XML decodificados                                    |
| CLI / trabalhadores | `$argv`, `STDIN`, variáveis de ambiente                                  |
| Dados armazenados   | Linhas de banco de dados, entradas de cache, filas, colunas serializadas |
| Arquivos locais     | Arquivos de configuração, importações CSV, arquivos temporários          |

## IDs das regras

| ID da regra        | Severidade | Significado                                                                               |
| ------------------ | ---------- | ----------------------------------------------------------------------------------------- |
| `PHP-CMD-001`      | Crítica    | Entrada contaminada alcança a execução de comandos.                                       |
| `PHP-EVAL-001`     | Crítica    | Entrada contaminada alcança a avaliação de código PHP.                                    |
| `PHP-INCL-001`     | Crítica    | Entrada contaminada controla caminhos de include/require.                                 |
| `PHP-DESER-001`    | Crítica    | Entrada contaminada alcança `unserialize()`.                                              |
| `PHP-WRITE-001`    | Crítica    | Escrita de arquivo controlada pelo usuário alcança um caminho executável ou público.      |
| `PHP-UPLOAD-001`   | Alta       | Validação ou armazenamento de upload pode permitir arquivos executáveis.                  |
| `PHP-SSRF-001`     | Alta       | URL contaminada alcança sinks HTTP, stream, socket ou cURL.                               |
| `PHP-SQL-001`      | Alta       | Entrada contaminada alcança SQL bruto.                                                    |
| `PHP-PATH-001`     | Alta       | Caminho contaminado alcança lógica de leitura/gravação/exclusão/movimentação de arquivos. |
| `PHP-CALLBACK-001` | Alta       | Nome de função ou método contaminado alcança despacho dinâmico.                           |
| `PHP-CONFIG-001`   | Alta       | Configuração perigosa do PHP aumenta a explorabilidade.                                   |
| `PHP-PRIV-001`     | Crítica    | A execução do PHP tem contexto SUID, sudo, cron ou privilegiado.                          |

## Triagem rápida

| Pergunta                                                               | Aumento de severidade               |
| ---------------------------------------------------------------------- | ----------------------------------- |
| Os dados da requisição podem alcançar a função?                        | Eleve para Alta ou Crítica.         |
| A função executa comandos, código PHP, includes ou desserialização?    | Crítica.                            |
| Ele mexe com arquivos sob a raiz da web?                               | Alta ou Crítica.                    |
| Ele aceita URLs, wrappers, hosts ou portas?                            | Alta.                               |
| Ele é executado por cron, sudo, SUID, workers ou hooks de implantação? | Crítica.                            |
| A validação é baseada apenas em listas de bloqueio, extensões ou MIME? | Eleve um nível.                     |
| O valor é selecionado de uma allow-list estrita?                       | Reduza a confiança ou a severidade. |

## Sinais de escalonamento de privilégio

| Sinal                                                        | Risco                                                                         |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| Binário PHP SUID                                             | O PHP pode ser executado com privilégios elevados do proprietário do arquivo. |
| Regra do sudo permite PHP                                    | O usuário pode executar PHP como outro usuário.                               |
| Cron de propriedade do root executa PHP gravável             | Script gravável pode se tornar uma execução privilegiada.                     |
| Raiz da web gravável                                         | Bug de gravação de arquivo ou upload pode se tornar execução de código.       |
| Segredos legíveis por todos                                  | Credenciais do app podem permitir movimento lateral.                          |
| Scripts do Composer são executados como usuário privilegiado | A execução de dependências ou scripts pode afetar a implantação.              |

## Modelo de relatório

```json
{
  "id": "PHP-CMD-001",
  "severity": "crítica",
  "function": "shell_exec",
  "file": "app/Controllers/ReportController.php",
  "line": 84,
  "source": "$_POST['format']",
  "impact": "Execução remota de comandos como o usuário do servidor web",
  "fix": "Substitua a execução de shell por uma biblioteca nativa do PHP ou por argumentos estritamente permitidos por uma allow-list."
}
```

## Lista de verificação do scanner

* Analisar `.php`, `.inc`, `.phtml`, `.module`, `.theme`, rotas do framework, controllers, jobs e scripts de CLI.
* Rastreie entradas de request, cookie, upload, header, corpo bruto, CLI, ambiente, banco de dados, cache, fila e baseadas em arquivo.
* Detecte sinks de execução de comandos, execução de código, include, arquivo, rede, SQL, desserialização, upload, callback, debug e configuração.
* Pontue as descobertas com alcançabilidade, sanitização, versão do PHP, configuração, raiz da web, permissões e contexto de execução.
* Exporte nome da função, categoria, severidade, origem, sink, arquivo, linha, impacto, confiança e correção.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/pt-br/hacking-tools/web/php-security-scanner.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
