Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
json-sanitizer — JSON과 유사한 콘텐츠가 주어지면, The JSON Sanitizer는 이를 유효한 JSON으로 변환합니다. | Kitploit
도구/GitHubGitHub/owasp/json-sanitizer
General Purpose UtilitiesStatic AnalysisEncryption/Decryption ToolsVulnerability AnalysisCode AnalysisWeb Security
GitHubowasp/json-sanitizer

json-sanitizer

JSON과 유사한 콘텐츠가 주어지면, The JSON Sanitizer는 이를 유효한 JSON으로 변환합니다.

저장소 보기
219552년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

json-sanitizer Fuzzing Status

JSON과 유사한 콘텐츠가 주어지면 JSON Sanitizer는 이를 유효한 JSON으로 변환합니다.

시작하기 - 연락처

이는 데이터 파이프라인의 양쪽 끝에 연결하여 Postel의 원칙을 충족시키는 데 도움이 될 수 있습니다.

자신이 하는 일에는 보수적으로, 다른 사람에게서 받아들일 때는 관대하게

다른 사람에게서 받은 JSON과 유사한 콘텐츠에 적용하면, 사용 중인 모든 파서를 만족시킬 수 있는 잘 구성된 JSON을 생성합니다.

보내기 전에 출력에 적용하면, 인코딩의 사소한 오류를 강제로 수정하고 JSON을 HTML 및 XML에 더 쉽게 포함시킬 수 있습니다.

동기

아키텍처

많은 애플리케이션은 JSON 출력을 생성하기 위해 임시 방식을 사용하는 대규모 코드를 가지고 있습니다.

종종 이러한 출력은 모두 네트워크로 전송되기 전에 소량의 프레임워크 코드를 통과합니다. 이 소량의 프레임워크 코드는 이 라이브러리를 사용하여 임시 출력이 표준을 준수하고 Javascript의 eval 연산자와 같은 (지나치게) 강력한 역직렬화기에 전달해도 안전한지 확인할 수 있습니다.

또한 애플리케이션은 다양한 소스에서 JSON을 수신하는 웹 서비스 API를 가지고 있는 경우가 많습니다. 이 JSON이 임시 방식으로 생성된 경우, 이 라이브러리는 구문 분석하기 쉬운 형태로 가공할 수 있습니다.

이 라이브러리를 요청 및 응답을 송수신하는 코드에 연결함으로써, 이 라이브러리는 소프트웨어 아키텍트가 시스템 전반의 보안 및 올바른 형식 보장을 보장하는 데 도움을 줄 수 있습니다.

입력

새니타이저는 JSON과 유사한 콘텐츠를 가져와 JS eval이 평가하는 방식으로 해석합니다. 특히, 다음과 같은 비표준 구문을 처리합니다.

새니타이저는 누락된 구두점, 종료 따옴표, 일치하지 않거나 누락된 닫는 괄호를 수정합니다. 입력에 공백만 포함된 경우 유효한 JSON 문자열 null이 대체됩니다.

출력

출력은 RFC 4627에 정의된 잘 구성된 JSON입니다. 출력은 다음과 같은 추가 속성을 충족합니다.

  • 출력에는 (대소문자를 구분하지 않고) 하위 문자열 "<script", "</script" 또는 "<!--"이 포함되지 않으므로 추가 인코딩 없이 HTML 스크립트 요소 내에 포함될 수 있습니다.
  • 출력에는 하위 문자열 "]]>"이 포함되지 않으므로 추가 인코딩 없이 XML CDATA 섹션 내에 포함될 수 있습니다.
  • 출력은 유효한 Javascript 표현식이므로 Javascript의 eval 내장 함수(괄호로 감싼 후) 또는 JSON.parse로 구문 분석할 수 있습니다. 특히, 출력에는 포함된 JS 줄바꿈(U+2028 단락 구분자 또는 U+2029 줄 구분자)이 있는 문자열 리터럴이 포함되지 않습니다.
  • 출력에는 XML에서 이스케이프되지 않은 상태로 허용되는 유효한 유니코드 스칼라 값(분리된 UTF-16 서로게이트 없음)만 포함됩니다.

보안

출력이 잘 구성된 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 메서드는 입력의 UTF-16 코드 단위 길이인 n에 대해 O(n) 시간이 걸립니다.

도구 다운로드
구조정책
'...'작은따옴표 문자열은 JSON 문자열로 변환됩니다.
\xAB16진수 이스케이프는 JSON 유니코드 이스케이프로 변환됩니다.
\0128진수 이스케이프는 JSON 유니코드 이스케이프로 변환됩니다.
0xAB16진수 정수 리터럴은 JSON 10진수 숫자로 변환됩니다.
0128진수 정수 리터럴은 JSON 10진수 숫자로 변환됩니다.
+.510진수 숫자는 JSON의 더 엄격한 형식으로 강제 변환됩니다.
[0,,2]배열의 생략은 null로 채워집니다.
[1,2,3,]후행 쉼표가 제거됩니다.
{foo:"bar"}따옴표가 없는 속성 이름은 따옴표로 처리됩니다.
//commentsJS 스타일의 한 줄 및 블록 주석이 제거됩니다.
(...)그룹화 괄호가 제거됩니다.