Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
braces-security-backport — braces 3.0.3 licenciado sob MIT com backport de profundidade revisado para CVE-2026-93687; consumo apenas fixado | Kitploit
Ferramentas/GitHubGitHub/bernydotjar/braces-security-backport
Análise de VulnerabilidadesAnálise de CódigoUtilitários e FrameworksSegurança da Cadeia de Suprimentos
GitHubbernydotjar/braces-security-backport

braces-security-backport

braces 3.0.3 licenciado sob MIT com backport de profundidade revisado para CVE-2026-93687; consumo apenas fixado

Ver Repositório
há 27 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

braces Donate NPM version NPM monthly downloads NPM total downloads Linux Build Status

Expansão de chaves no estilo Bash, implementada em JavaScript. Mais segura que outras bibliotecas de expansão de chaves, com suporte completo à especificação de chaves do Bash 4.3, sem sacrificar o desempenho.

Considere seguir o autor deste projeto, Jon Schlinkert, e considere dar uma estrela ao projeto para mostrar seu ❤️ e apoio.

Instalação

Instale com npm:

$ npm install --save braces

v3.0.0 Lançado!!

Consulte o changelog para mais detalhes.

Por que usar braces?

Os padrões de chaves tornam os globs mais poderosos ao adicionar a capacidade de corresponder a intervalos e sequências específicas de caracteres.

  • Preciso - suporte completo à especificação Bash 4.3 Brace Expansion (passa em todos os testes de chaves do Bash)
  • rápido e com bom desempenho - Inicia rápido, executa rápido e escala bem à medida que os padrões aumentam em complexidade.
  • Base de código organizada - O parser e o compilador são fáceis de manter e atualizar quando surgem casos extremos.
  • Bem testado - Milhares de asserções de teste, e passa em todos os testes unitários do Bash, minimatch e brace-expansion (na data em que isto foi escrito).
  • Mais seguro - Você não deve precisar se preocupar com usuários definindo padrões de chaves agressivos ou maliciosos que possam quebrar sua aplicação. O Braces toma medidas para prevenir regex maliciosas que podem ser usadas em ataques DDoS (consulte catastrophic backtracking).
  • Suporta listas - (também conhecidas como "conjuntos") a/{b,c}/d => ['a/b/d', 'a/c/d']
  • Suporta sequências - (também conhecidas como "intervalos") {01..03} => ['01', '02', '03']
  • Suporta passos - (também conhecidos como "incrementos") {2..10..2} => ['2', '4', '6', '8', '10']
  • Suporta escape - Para evitar a avaliação de caracteres especiais.

Uso

A exportação principal é uma função que recebe um ou mais patterns de chaves e options.

const braces = require('braces');
// braces(patterns[, options]);

console.log(braces(['{01..05}', '{a..e}']));
//=> ['(0[1-5])', '([a-e])']

console.log(braces(['{01..05}', '{a..e}'], { expand: true }));
//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e']

Expansão de chaves vs. compilação

Por padrão, os padrões de chaves são compilados em strings otimizadas para criar expressões regulares e realizar correspondências.

Compilado

console.log(braces('a/{x,y,z}/b'));
//=> ['a/(x|y|z)/b']
console.log(braces(['a/{01..20}/b', 'a/{1..5}/b']));
//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ]

Expandido

Ative a expansão de chaves definindo a opção expand como true, ou usando braces.expand() (retorna um array semelhante ao que você esperaria do Bash, ou echo {1..5}, ou minimatch):

console.log(braces('a/{x,y,z}/b', { expand: true }));
//=> ['a/x/b', 'a/y/b', 'a/z/b']

console.log(braces.expand('{01..10}'));
//=> ['01','02','03','04','05','06','07','08','09','10']

Listas

Expanda listas (como "sets" do Bash):

console.log(braces('a/{foo,bar,baz}/*.js'));
//=> ['a/(foo|bar|baz)/*.js']

console.log(braces.expand('a/{foo,bar,baz}/*.js'));
//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js']

Sequências

Expanda intervalos de caracteres (como "sequências" do Bash):

console.log(braces.expand('{1..3}')); // ['1', '2', '3']
console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b']
console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c']
console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c']

// supports zero-padded ranges
console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b']
console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b']

Consulte fill-range para todas as opções disponíveis de expansão de intervalos.

Intervalos com passo

Passos, ou incrementos, podem ser usados com intervalos:

console.log(braces.expand('{2..10..2}'));
//=> ['2', '4', '6', '8', '10']

console.log(braces('{2..10..2}'));
//=> ['(2|4|6|8|10)']

Quando o método .optimize é usado, ou options.optimize é definido como true, as sequências são passadas para to-regex-range para expansão.

Aninhamento

Os padrões de chaves podem ser aninhados. Os resultados de cada string expandida não são ordenados, e a ordem da esquerda para a direita é preservada.

Chaves "expandidas"

console.log(braces.expand('a{b,c,/{x,y}}/e'));
//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e']

console.log(braces.expand('a/{x,{1..5},y}/c'));
//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c']

Chaves "otimizadas"

console.log(braces('a{b,c,/{x,y}}/e'));
//=> ['a(b|c|/(x|y))/e']

console.log(braces('a/{x,{1..5},y}/c'));
//=> ['a/(x|([1-5])|y)/c']

Escapando

Escapando chaves

Um padrão de chaves não será expandido nem avaliado se a chave de abertura ou a de fechamento estiver escapada:

console.log(braces.expand('a\\{d,c,b}e'));
//=> ['a{d,c,b}e']

console.log(braces.expand('a{d,c,b\\}e'));
//=> ['a{d,c,b}e']

Escapando vírgulas

Vírgulas dentro de chaves também podem ser escapadas:

console.log(braces.expand('a{b\\,c}d'));
//=> ['a{b,c}d']

console.log(braces.expand('a{d\\,c,b}e'));
//=> ['ad,ce', 'abe']

Itens únicos

Seguindo as convenções do bash, um padrão de chaves também não é expandido quando contém um único caractere:

console.log(braces.expand('a{b}c'));
//=> ['a{b}c']

Opções

options.maxLength

Tipo: Number

Padrão: 10,000

Descrição: Limita o comprimento da string de entrada. Útil quando a string de entrada é gerada ou quando sua aplicação permite que usuários passem uma string, entre outros casos.

console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error

options.expand

Tipo: Boolean

Padrão: undefined

Descrição: Gera um padrão de chaves "expandido" (alternativamente, você pode usar o método braces.expand(), que faz a mesma coisa).

console.log(braces('a/{b,c}/d', { expand: true }));
//=> [ 'a/b/d', 'a/c/d' ]

options.nodupes

Tipo: Boolean

Padrão: undefined

Descrição: Remove duplicatas do array retornado.

options.rangeLimit

Tipo: Number

Padrão: 1000

Descrição: Para evitar que padrões maliciosos sejam passados por usuários, um erro é lançado quando braces.expand() é usado ou quando options.expand é true e o intervalo gerado exceder o rangeLimit.

Você pode personalizar options.rangeLimit ou defini-lo como Inifinity para desativar isso completamente.

Exemplos

Baixar ferramenta