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

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

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

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

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

Категории

Все категории
Loading categories
vue-template-compiler-patched — Исправленный компилятор шаблонов Vue 2.7.16 с исправлениями для CVE‑2024‑6783 и CVE-2024-9506 | Kitploit
Инструменты/GitHubGitHub/bio/vue-template-compiler-patched
Утилиты общего назначенияСтатический анализАнализ уязвимостейАнализ КодаБезопасность Цепочки Поставок
GitHubbio/vue-template-compiler-patched

vue-template-compiler-patched

Исправленный компилятор шаблонов Vue 2.7.16 с исправлениями для CVE‑2024‑6783 и CVE-2024-9506

Репозиторий
212352 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

vue-template-compiler-patched

Версия vue-template-compiler с исправлениями безопасности для устранения уязвимости загрязнения прототипа (CVE-2024-6783) и уязвимости ReDoS (CVE-2024-9506).

Основано на [email protected]. Разработка и обсуждение проблем ведутся в vue-patched.

Связанные проекты

Если вы используете полную сборку Vue (runtime + компилятор) или CDN-версию vue.js, также замените vue на vue-patched.

Этот пакет можно использовать для предварительной компиляции шаблонов Vue 2.0 в render-функции, чтобы избежать накладных расходов на компиляцию во время выполнения и ограничений CSP. В большинстве случаев его следует использовать вместе с vue-loader; отдельно он понадобится только при создании инструментов сборки с очень специфическими требованиями.

Установка

Выберите способ установки, который вам больше подходит.

Способ установки через alias

Устанавливает пропатченный компилятор под исходным именем vue-template-compiler, поэтому peer-зависимости остаются удовлетворёнными, а существующие обращения к пакету продолжают разрешаться (например, в @vue/test-utils).

npm

npm install vue-template-compiler@npm:vue-template-compiler-patched@^2.7.16-patch.3 --save-dev

pnpm

pnpm add vue-template-compiler@npm:vue-template-compiler-patched@^2.7.16-patch.3 --save-dev

Yarn

yarn add vue-template-compiler@npm:vue-template-compiler-patched@^2.7.16-patch.3 --dev

Стандартный метод установки

Устанавливает компилятор как vue-template-compiler-patched. Используйте этот метод, если вам нужен только прямой доступ к пропатченной сборке. Инструменты, которые разрешают vue-template-compiler по имени пакета, не обнаружат его.

npm

npm install vue-template-compiler-patched --save-dev

pnpm

pnpm add vue-template-compiler-patched --save-dev

Yarn

yarn add vue-template-compiler-patched --dev

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

import compiler from 'vue-template-compiler-patched'
// or: const compiler = require('vue-template-compiler-patched')

API

compiler.compile(template, [options])

Компилирует строку шаблона и возвращает скомпилированный код JavaScript. Возвращаемый результат представляет собой объект следующего формата:

{
  ast: ?ASTElement, // parsed template elements to AST
  render: string, // main render function code
  staticRenderFns: Array<string>, // render code for static sub trees, if any
  errors: Array<string> // template syntax errors, if any
}

Обратите внимание, что возвращаемый код функции использует with и поэтому не может использоваться в коде строгого режима.

Опции

  • outputSourceRange новое в 2.6

    • Тип: boolean
    • По умолчанию: false

    Установка значения true приведёт к тому, что errors, возвращаемые в скомпилированном результате, станут объектами вида { msg, start, end }. Свойства start и end — это числа, отмечающие диапазон кода источника ошибки в шаблоне. Это можно передать в API compiler.generateCodeFrame для генерации фрагмента кода для ошибки.

  • whitespace

    • Тип: string
    • Допустимые значения: 'preserve' | 'condense'
    • По умолчанию: 'preserve'

    Значение по умолчанию 'preserve' обрабатывает пробельные символы следующим образом:

    • Текстовый узел, состоящий только из пробельных символов, между тегами элементов сжимается в один пробел.
    • Все остальные пробельные символы сохраняются как есть.

    Если установлено 'condense':

    • Текстовый узел, состоящий только из пробельных символов, между тегами элементов удаляется, если он содержит переводы строк. В противном случае он сжимается в один пробел.
    • Последовательные пробельные символы внутри текстового узла, не состоящего только из пробельных символов, сжимаются в один пробел.

    Использование режима condense приведёт к меньшему размеру скомпилированного кода и незначительному улучшению производительности. Однако в некоторых случаях это вызовет незначительные визуальные различия в макете по сравнению с обычным HTML.

    Эта опция не влияет на тег <pre>.

    Пример:

    <!-- source -->
    <div>
      <span>
        foo
      </span>   <span>bar</span>
    </div>
    
    <!-- whitespace: 'preserve' -->
    <div> <span>
      foo
      </span> <span>bar</span> </div>
    
    <!-- whitespace: 'condense' -->
    <div><span> foo </span> <span>bar</span></div>
    
  • modules

    Можно подключиться к процессу компиляции для поддержки пользовательских возможностей шаблонов. Однако учтите, что при внедрении пользовательских модулей времени компиляции ваши шаблоны не будут работать с другими инструментами сборки, основанными на стандартных встроенных модулях, например vue-loader и vueify.

    Массив модулей компилятора. Подробности о модулях компилятора см. в типе ModuleOptions в объявлениях flow и во встроенных модулях.

  • directives

    Объект, где ключ — это имя директивы, а значение — функция, преобразующая узел AST шаблона. Например:

    compiler.compile('<div v-test></div>', {
      directives: {
        test (node, directiveMeta) {
          // transform node based on directiveMeta
        }
      }
    })
    

    По умолчанию директива времени компиляции будет извлечена, и директива не будет присутствовать во время выполнения. Если вы хотите, чтобы директива также обрабатывалась определением времени выполнения, верните true в функции transform.

    Обратитесь к реализации некоторых встроенных директив времени компиляции.

  • preserveWhitespace Устарело с версии 2.6

    • Тип: boolean
    • По умолчанию: true

    По умолчанию скомпилированная функция рендеринга сохраняет все пробельные символы между HTML-тегами. Если установлено значение false, пробелы между тегами будут игнорироваться. Это может немного улучшить производительность, но может повлиять на макет для строчных элементов.


compiler.compileToFunctions(template)

Аналогично compiler.compile, но напрямую возвращает экземпляры функций:

{
  render: Function,
  staticRenderFns: Array<Function>
}

Это полезно только во время выполнения при использовании предварительно настроенных сборок, поэтому метод не принимает никаких параметров времени компиляции. Кроме того, этот метод использует new Function(), поэтому он несовместим с CSP.


compiler.ssrCompile(template, [options])

2.4.0+

То же, что и compiler.compile, но генерирует код функции рендеринга, специфичный для SSR, путём оптимизации частей шаблона в конкатенацию строк для повышения производительности SSR.

Это используется по умолчанию в vue-loader@>=12 и может быть отключено с помощью опции optimizeSSR.


compiler.ssrCompileToFunctions(template)

2.4.0+

То же, что и compiler.compileToFunction, но генерирует код функции рендеринга, специфичный для SSR, путём оптимизации частей шаблона в конкатенацию строк для повышения производительности SSR.


compiler.parseComponent(file, [options])

Разбирает SFC (однофайловый компонент, или файл *.vue) в дескриптор (см. тип SFCDescriptor в объявлениях flow). Это используется в инструментах сборки SFC, таких как vue-loader и vueify.


compiler.generateCodeFrame(template, start, end)

Генерирует фрагмент кода, который выделяет часть в template, определённую параметрами start и end. Полезно для сообщения об ошибках в инструментах более высокого уровня.

Опции

pad

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