Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
braces-security-backport — Лицензированный по MIT braces 3.0.3 с проверенным бэкпортом глубины CVE-2026-93687; только закреплённое потребление | Kitploit
Инструменты/GitHubGitHub/bernydotjar/braces-security-backport
Анализ уязвимостейАнализ КодаУтилиты и фреймворкиБезопасность Цепочки Поставок
GitHubbernydotjar/braces-security-backport

braces-security-backport

Лицензированный по MIT braces 3.0.3 с проверенным бэкпортом глубины CVE-2026-93687; только закреплённое потребление

Репозиторий
27 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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

Раскрытие фигурных скобок в стиле Bash, реализованное на JavaScript. Безопаснее других библиотек раскрытия фигурных скобок, с полной поддержкой спецификации фигурных скобок Bash 4.3, без ущерба для скорости.

Пожалуйста, подумайте о том, чтобы подписаться на автора этого проекта, Jon Schlinkert, и поставьте звезду проекту, чтобы показать вашу ❤️ и поддержку.

Установка

Установите с помощью npm:

$ npm install --save braces

Выпущена версия v3.0.0!!

Подробности см. в changelog.

Зачем использовать braces?

Шаблоны braces делают globs более мощными, добавляя возможность сопоставления определённых диапазонов и последовательностей символов.

  • Точность — полная поддержка спецификации Bash 4.3 Brace Expansion (проходит все тесты braces в Bash)
  • Быстрота и производительность — Быстрый запуск, быстрая работа и хорошая масштабируемость по мере усложнения шаблонов.
  • Организованная кодовая база — Парсер и компилятор легко поддерживать и обновлять при возникновении крайних случаев.
  • Хорошо протестировано — Тысячи тестовых утверждений, проходит все модульные тесты Bash, minimatch и brace-expansion (на момент написания этого текста).
  • Безопаснее — Вам не нужно беспокоиться о том, что пользователи определят агрессивные или вредоносные шаблоны braces, которые могут сломать ваше приложение. Braces принимает меры для предотвращения вредоносных regex, которые могут использоваться для DDoS-атак (см. catastrophic backtracking).
  • Поддерживает списки — (они же "наборы") a/{b,c}/d => ['a/b/d', 'a/c/d']
  • Поддерживает последовательности — (они же "диапазоны") {01..03} => ['01', '02', '03']
  • Поддерживает шаги — (они же "приращения") {2..10..2} => ['2', '4', '6', '8', '10']
  • Поддерживает экранирование — Для предотвращения вычисления специальных символов.

Использование

Основной экспорт — это функция, которая принимает один или несколько patterns braces и 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']

Раскрытие фигурных скобок против компиляции

По умолчанию шаблоны с фигурными скобками компилируются в строки, оптимизированные для создания регулярных выражений и сопоставления.

Скомпилировано

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' ]

Расширение

Включите раскрытие фигурных скобок, установив для параметра expand значение true, или с помощью braces.expand() (возвращает массив, аналогичный тому, что вы ожидаете от Bash, или echo {1..5}, или 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']

Списки

Разворачивайте списки (как «наборы» в 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']

Последовательности

Разворачивайте диапазоны символов (как «последовательности» в 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']

См. fill-range для всех доступных параметров расширения диапазонов.

Диапазоны с шагом

Шаги, или приращения, могут использоваться с диапазонами:

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

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

Когда используется метод .optimize или для options.optimize задано значение true, последовательности передаются в to-regex-range для раскрытия.

Вложенность

Шаблоны фигурных скобок могут быть вложенными. Результаты каждой раскрытой строки не сортируются, а порядок слева направо сохраняется.

«Раскрытые» фигурные скобки

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']

«Оптимизированные» фигурные скобки

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']

Экранирование

Экранирование фигурных скобок

Шаблон фигурных скобок не будет раскрыт или вычислен, если экранирована либо открывающая, либо закрывающая скобка:

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']

Экранирование запятых

Запятые внутри фигурных скобок также можно экранировать:

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

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

Отдельные элементы

Следуя соглашениям bash, шаблон с фигурными скобками также не раскрывается, если он содержит один символ:

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

Параметры

options.maxLength

Тип: Number

По умолчанию: 10,000

Описание: Ограничивает длину входной строки. Полезно, когда входная строка генерируется или ваше приложение позволяет пользователям передавать строку, и т. д.

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

options.expand

Тип: Boolean

По умолчанию: undefined

Описание: Генерирует «расширенный» шаблон фигурных скобок (в качестве альтернативы можно использовать метод braces.expand(), который делает то же самое).

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

options.nodupes

Тип: Boolean

По умолчанию: undefined

Описание: Удаляет дубликаты из возвращаемого массива.

options.rangeLimit

Тип: Number

По умолчанию: 1000

Описание: Чтобы предотвратить передачу пользователями вредоносных шаблонов, выбрасывается ошибка, когда используется braces.expand() или когда options.expand имеет значение true и сгенерированный диапазон превысит rangeLimit.

Скачать инструмент