00

A resposta curta

  • YAML é uma linguagem de serialização de dados baseada em Unicode que representa configurações e dados de intercâmbio como texto legível, mas seu carregamento exige um processador compatível com a versão e as tags utilizadas.
  • No Windows ou Mac, abra o arquivo .yaml ou .yml em um editor de texto. No celular, use um editor que consiga acessar o arquivo. Ler o texto não exige desserializá-lo. Para carregá-lo como dados de um programa, use um processador compatível com a versão de YAML e as tags presentes. Se o carregamento falhar, confira a indentação e a sintaxe. Um fluxo YAML pode conter vários documentos; aplicativos que aceitam apenas um devem rejeitar os adicionais.
  • O risco alto está ligado à análise insegura. O processamento de tags pode provocar execução indesejada de código, portanto desserializadores devem desativá-la por padrão e usar carregamento seguro. Referências cíclicas e expansão de aliases podem causar loops infinitos ou crescimento exponencial dos dados. Valide a entrada e limite a profundidade de recursão das âncoras. Conseguir ler ou carregar o arquivo não comprova sua segurança.
01

Arquivos YAML: abertura, compatibilidade e análise segura

YAML significa “YAML Ain’t Markup Language”. Suas estruturas básicas são mapeamentos, sequências e escalares. A indentação pode expressar hierarquia, os dois-pontos separam chaves e valores, e os hífens introduzem itens de lista. Também oferece tags de tipo, âncoras e aliases. O tipo de mídia registrado é application/yaml; .yaml é a extensão preferida e .yml também é reconhecida. Não há número mágico fixo registrado.

Guarde o original

Não presuma que a conversão de YAML para JSON seja sem perdas. Comentários, diretivas e a representação por aliases podem se perder. Chaves que não sejam strings, referências cíclicas e tipos que não existem em JSON exigem tratamento adicional. Confira se o resultado preserva os dados necessários.

02

Como abrir

No Windows ou Mac, abra o arquivo .yaml ou .yml em um editor de texto. No celular, use um editor que consiga acessar o arquivo. Ler o texto não exige desserializá-lo. Para carregá-lo como dados de um programa, use um processador compatível com a versão de YAML e as tags presentes. Se o carregamento falhar, confira a indentação e a sintaxe. Um fluxo YAML pode conter vários documentos; aplicativos que aceitam apenas um devem rejeitar os adicionais.

Só quero visualizar

No Windows ou Mac, abra o arquivo .yaml ou .yml em um editor de texto. No celular, use um editor que consiga acessar o arquivo. Ler o texto não exige desserializá-lo. Para carregá-lo como dados de um programa, use um processador compatível com a versão de YAML e as tags presentes. Se o carregamento falhar, confira a indentação e a sintaxe. Um fluxo YAML pode conter vários documentos; aplicativos que aceitam apenas um devem rejeitar os adicionais.

Preciso enviar para alguém

Não presuma que a conversão de YAML para JSON seja sem perdas. Comentários, diretivas e a representação por aliases podem se perder. Chaves que não sejam strings, referências cíclicas e tipos que não existem em JSON exigem tratamento adicional. Confira se o resultado preserva os dados necessários.

03

Segurança

O risco alto está ligado à análise insegura. O processamento de tags pode provocar execução indesejada de código, portanto desserializadores devem desativá-la por padrão e usar carregamento seguro. Referências cíclicas e expansão de aliases podem causar loops infinitos ou crescimento exponencial dos dados. Valide a entrada e limite a profundidade de recursão das âncoras. Conseguir ler ou carregar o arquivo não comprova sua segurança.

Pare se notar alguma dessas coisas

Remetente desconhecido, nome terminando em duas extensões ou conteúdo que não bate com a extensão: confira antes de abrir.

04

Como converter

Não presuma que a conversão de YAML para JSON seja sem perdas. Comentários, diretivas e a representação por aliases podem se perder. Chaves que não sejam strings, referências cíclicas e tipos que não existem em JSON exigem tratamento adicional. Confira se o resultado preserva os dados necessários.

Antes de converter

Converta uma cópia, nunca o original, e depois compare qualidade, metadados e diagramação com o arquivo de partida.

05

Perguntas frequentes

O que é um arquivo YAML e para que serve?

YAML é uma linguagem de serialização de dados legível por pessoas e utilizável entre linguagens de programação. É comum em arquivos de configuração e intercâmbio de dados e usa mapeamentos, sequências e escalares.

Como abrir arquivos YAML no Windows?

Abra o arquivo .yaml ou .yml em um editor de texto para lê-lo. Para carregar o conteúdo como dados, o processador YAML do aplicativo precisa aceitar sua versão e suas tags.

Como abrir arquivos YAML no Mac?

Use um editor de texto para abrir o arquivo .yaml ou .yml. A leitura permite inspecionar o conteúdo; carregá-lo como dados exige também um processador YAML compatível.

Como abrir arquivos YAML no celular?

Use um editor de texto que consiga acessar o arquivo no celular. YAML é texto simples, então o editor pode exibir seu conteúdo; carregá-lo como dados exige um processador YAML compatível.

Como verificar a indentação e a sintaxe de YAML quando o arquivo não carrega?

Confira a indentação, os separadores de chave e valor e os marcadores de lista com um processador compatível. A resolução, o reconhecimento ou a construção de tags também podem falhar. Aplicativos de documento único devem rejeitar documentos adicionais.

Quais são as diferenças entre as extensões YAML e YML?

As duas extensões são reconhecidas para YAML. O RFC 9512 prefere .yaml e também reconhece .yml. Escolher uma extensão não resolve incompatibilidades de versão ou de tags.

Quais perdas podem ocorrer ao converter YAML para JSON?

Comentários, diretivas e a representação por aliases podem se perder. Chaves que não sejam strings, referências cíclicas e tipos ausentes em JSON exigem tratamento adicional; a conversão não é necessariamente sem perdas.

Como analisar arquivos YAML não confiáveis com segurança?

Use carregamento seguro com execução de código desativada por padrão. Valide a entrada e limite a profundidade de recursão das âncoras. Tags, referências cíclicas e expansão de aliases podem causar riscos; essas medidas não garantem segurança absoluta.

Quais diferenças de booleanos entre YAML 1.1 e 1.2 afetam a compatibilidade?

A interpretação implícita de booleanos pode variar entre versões. Para reduzir problemas, use true ou false nas formas de maiúsculas e minúsculas permitidas pelo esquema básico de YAML 1.2 e confira a versão do processador receptor.

Como funcionam as âncoras e os aliases de YAML e quais limites são necessários?

Uma âncora identifica um nó, e um alias referencia um nó com âncora. Referências cíclicas ou expansão de aliases podem causar loops infinitos ou crescimento exponencial. O processador deve validar a entrada e limitar a profundidade de recursão das âncoras.

06

Formatos relacionados

Fontes

YAML Ain’t Markup Language (YAML) Version 1.2, Revision 1.2.2 · YAML 官方规范 / YAML Language Development Team

RFC 9512: YAML Media Type · IETF / RFC Editor