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

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

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

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

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

Категории

Все категории
Loading categories
url-regex-safe — Регулярное выражение для сопоставления URL. Поддерживаемая, безопасная и совместимая с браузерами версия url-regex. Устраняет CVE-2020-7661 для серверов Node.js. | Kitploit
Инструменты/GitHubGitHub/spamscanner/url-regex-safe
Утилиты общего назначенияСтатический анализАнализ уязвимостейСкриптинг и автоматизацияВеб-безопасность
GitHubspamscanner/url-regex-safe

url-regex-safe

Регулярное выражение для сопоставления URL. Поддерживаемая, безопасная и совместимая с браузерами версия url-regex. Устраняет CVE-2020-7661 для серверов Node.js.

Репозиторий
8116143 лет назадПроверено Kitploit
Сайт

Популярное

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

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

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

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

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

url-regex-safe

build status code style styled with prettier made with lass license npm downloads

Регулярное выражение для сопоставления URL. Поддерживаемая, безопасная и совместимая с браузерами версия [url-regex][]. Устраняет [CVE-2020-7661][cve] для серверов Node.js. Работает в Node v14+ и браузерах. Поддерживается для [Spam Scanner][spam-scanner] и [Forward Email][forward-email].

Содержание

  • Предисловие
  • Установка
  • Использование
    • Node
    • Браузер
  • Опции
  • Краткие советы и переход с url-regex
  • Ограничения
  • Контрибьюторы
  • Лицензия

Предисловие

Обнаружив [CVE-2020-7661][cve] и раскрыв его публично (в рамках моей работы над [Spam Scanner][spam-scanner] и [Forward Email][forward-email]) – я использовал реализацию [url-regex][] с дополнительной «обвязкой» поверх неё для отсеивания нежелательных совпадений URL.

Однако, используя его в продакшене на [Forward Email][forward-email] (который обрабатывает сотни тысяч писем в неделю), я нашёл и задокументировал ещё несколько ключевых проблем в [url-regex][].

Осознав, что [url-regex][] больше не поддерживается активно, на момент написания имеет 9 открытых pull request'ов, а также не поддерживает браузеры, я решил написать этот пакет для всех и объединить все открытые pull request'ы.

Этот пакет, надеюсь, должен более точно соответствовать реальному предполагаемому использованию регулярного выражения для URL, а также позволять пользователю настраивать его по своему усмотрению. Пожалуйста, загляните в [Forward Email][forward-email], если этот пакет вам помог, и изучите наш исходный код на GitHub, где показано, как мы используем этот пакет.

Установка

ПРИМЕЧАНИЕ: По умолчанию этот пакет пытается загрузить re2 (это опциональная peer-зависимость, используемая для предотвращения отказа в обслуживании с помощью регулярных выражений и многого другого). Если вы хотите использовать это поведение, у вас должен быть установлен re2 через npm install re2 – в противном случае будет использоваться обычный RegExp. Начиная с версии v4.0.0 мы добавили опцию, если вы хотите заставить пакет даже не пытаться загружать re2 (например, он есть в вашем node_modules, но вы не хотите его использовать) – просто передайте re2: false в качестве опции.

[npm][]:

npm install url-regex-safe

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

Node

Мы устранили [CVE-2020-7661][cve], включив [RE2][] для использования с Node.js. Вам больше не придётся вручную оборачивать регулярные выражения для URL с помощью new RE2(urlRegex()) через url-regex-safe (мы делаем это автоматически).

const urlRegexSafe = require('url-regex-safe');

const str = 'some long string with url.com in it';
const matches = str.match(urlRegexSafe());

for (const match of matches) {
  console.log('match', match);
}

console.log(urlRegexSafe({ exact: true }).test('github.com'));

Браузер

Поскольку [RE2][] не предназначен для браузера, он не будет использоваться, и поэтому [CVE-2020-7661][cve] по-прежнему является проблемой на стороне клиента. Однако это не критично, поскольку максимум, что может произойти, — это падение вкладки браузера (в то время как на стороне Node.js это привело бы к падению всего процесса и исключению нехватки памяти).

VanillaJS

Это решение для вас, если вы просто используете теги <script> повсюду!

<script src="https://unpkg.com/url-regex-safe"></script>
<script type="text/javascript">
  (function() {
    var str = 'some long string with url.com in it';
    var matches = str.match(urlRegexSafe());

    for (var i=0; i<matches.length; i++) {
      console.log('match', matches[i]);
    }

    console.log(urlRegexSafe({ exact: true }).test('github.com'));
  })();
</script>

Сборщик модулей

Если вы используете [browserify][], [webpack][], [rollup][] или другой сборщик модулей, вы можете просто следовать инструкциям по использованию из раздела Node выше.

TypeScript

Чтобы использовать этот пакет с TypeScript, вы можете установить пакет @types/url-regex-safe для определения типов.

npm install --save-dev @types/url-regex-safe

Опции

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