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

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

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

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

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

Категории

Все категории
Loading categories
json-sanitizer — Средство очистки JSON, которое преобразует некорректный JSON-подобный контент в допустимый безопасный JSON, предотвращая инъекции кода и обеспечивая соответствие стандартам для веб- и XML-встраивания. | Kitploit
Инструменты/GitHubGitHub/epicosy/json-sanitizer
Утилиты общего назначенияИнструменты шифрования/дешифрованияАнализ уязвимостейАнализ КодаВеб-безопасность
GitHubepicosy/json-sanitizer

json-sanitizer

Средство очистки JSON, которое преобразует некорректный JSON-подобный контент в допустимый безопасный JSON, предотвращая инъекции кода и обеспечивая соответствие стандартам для веб- и XML-встраивания.

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

Популярное

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

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

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

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

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

json-sanitizer

Задан JSON-подобный контент, JSON Sanitizer преобразует его в корректный JSON.

Начало работы - Контакты

Этот инструмент можно подключить на любом конце конвейера обработки данных, чтобы помочь соблюсти принцип Постеля:

будьте консервативны в том, что делаете, и либеральны в том, что принимаете от других

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

Применённый к вашему выводу перед отправкой, он исправит мелкие ошибки кодирования и упростит встраивание вашего JSON в HTML и XML.

Мотивация

Архитектура

Многие приложения имеют большие объёмы кода, использующего ad-hoc методы для генерации JSON-вывода.

Зачастую эти выводы проходят через небольшой объём каркасного (framework) кода перед отправкой по сети. Этот небольшой объём каркасного кода может использовать данную библиотеку, чтобы гарантировать, что ad-hoc выводы соответствуют стандартам и безопасны для передачи (чрезмерно) мощным десериализаторам, таким как оператор eval в Javascript.

Приложения также часто имеют веб-сервисные API, которые получают JSON из различных источников. Если этот JSON создан с использованием ad-hoc методов, эта библиотека может привести его к удобной для анализа форме.

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

Входные данные

Санитайзер принимает JSON-подобный контент и интерпретирует его так, как это сделал бы JS eval. В частности, он обрабатывает следующие нестандартные конструкции.

КонструкцияПолитика
'...'Строки в одинарных кавычках преобразуются в JSON-строки.
\xABШестнадцатеричные escape-последовательности преобразуются в JSON-escape-последовательности Unicode.
\012Восьмеричные escape-последовательности преобразуются в JSON-escape-последовательности Unicode.
0xABШестнадцатеричные целочисленные литералы преобразуются в десятичные числа JSON.
012Восьмеричные целочисленные литералы преобразуются в десятичные числа JSON.
+.5Десятичные числа приводятся к более строгому формату JSON.
[0,,2]Пропуски в массивах заполняются значением null.
[1,2,3,]Завершающие запятые удаляются.
{foo:"bar"}Некавыченные имена свойств заключаются в кавычки.
//commentsСтрочные и блочные комментарии в стиле JS удаляются.
(...)Скобки группировки удаляются.

Санитайзер исправляет пропущенную пунктуацию, закрывающие кавычки, а также несоответствующие или отсутствующие закрывающие скобки. Если входные данные содержат только пробельные символы, то подставляется корректная JSON-строка null.

Выходные данные

Выходные данные — это корректный JSON, определённый в RFC 4627. Выходные данные удовлетворяют следующим дополнительным свойствам:

  • В выходных данных не будет содержаться подстрока (без учёта регистра) "</script", поэтому их можно встраивать в HTML-элемент script без дополнительного кодирования.
  • В выходных данных не будет содержаться подстрока "]]>", поэтому их можно встраивать в CDATA-секцию XML без дополнительного кодирования.
  • Выходные данные — это корректное Javascript-выражение, поэтому их можно парсить встроенной функцией Javascript eval (после обёртывания в круглые скобки) или с помощью JSON.parse. В частности, выходные данные не будут содержать строковых литералов со встроенными символами новой строки JS (U+2028 Paragraph separator или U+2029 Line separator).
  • Выходные данные содержат только корректные Unicode скалярные значения (без изолированных суррогатных пар UTF-16), которые допустимы в XML без экранирования.

Безопасность

Поскольку выходные данные являются корректным JSON, передача их в eval не будет иметь побочных эффектов и свободных переменных, поэтому они не являются ни вектором внедрения кода, ни вектором для утечки секретов.

Эта библиотека гарантирует только то, что этап JSON-строка → Javascript-объект не имеет побочных эффектов и не разрешает свободные переменные, и не может контролировать, как другой клиентский код впоследствии интерпретирует полученный Javascript-объект. Поэтому если клиентский код берёт часть распарсенных данных, контролируемых атакующим, и передаёт их обратно через мощный интерпретатор, такой как eval или innerHTML, то этот клиентский код может пострадать от непредвиденных побочных эффектов.

root@kitploit:~
var myValue = eval(sanitizedJsonString);  // безопасно
var myEmbeddedValue = eval(myValue.foo);  // потенциально опасно

Кроме того, санитизация JSON не может защитить приложение от атак доверенного заместителя

root@kitploit:~
var myValue = JSON.parse(sanitizedJsonString);
addToAdminstratorsGroup(myValue.propertyFromUntrustedSource);

Производительность

Метод sanitize вернёт входную строку без выделения нового буфера, когда входные данные уже являются корректным JSON, удовлетворяющим указанным выше свойствам. Таким образом, при использовании на входных данных, которые обычно хорошо сформированы, он имеет минимальные накладные расходы по памяти.

Метод sanitize работает за время O(n), где n — длина входных данных в 16-битных кодовых единицах UTF-16.

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