한국어

개발자 데이터 도구 키트로 수행할 수 없는 작업

여기의 모든 유틸리티에는 장점이 있습니다. 이 페이지에는 각 서비스가 중지되는 위치, 이유, 대신 사용할 항목이 나와 있습니다. 따라서 의존하기 전이 아니라 의존하기 전에 알아보세요.

모든 것에 적용되는 제약

모든 처리는 장치의 메모리를 사용하여 하나의 브라우저 탭에서 이루어집니다. 이것이 개인정보 보호 주장을 사실로 만드는 이유이며 아래의 모든 크기 제한의 원천이기도 합니다. 각 유틸리티는 입력을 명시적으로 제한하고 페이지를 고정하는 대신 명확한 메시지로 큰 작업을 거부합니다.

브라우저가 Web Crypto API(SHA 해싱 및 UUID 생성)를 노출하는 유일한 장소이기 때문에 두 가지 기능에는 보안 컨텍스트(https:// 또는 localhost)가 필요합니다. LAN 주소에서 일반 HTTP를 통해 열면 둘 다 사용할 수 없다는 메시지가 표시됩니다. 브라우저 자체가 신뢰할 만한 것이기 때문에 손으로 작성한 구현을 대체하지도 않습니다.

서비스 워커가 없으므로 첫 번째 로드에는 네트워크 연결이 필요합니다. 그 후에는 툴킷에서 필요한 작업이 전혀 없습니다.

JSON

엄격한 RFC 8259만 해당됩니다. 주석, 후행 쉼표, 작은따옴표로 묶인 문자열, 따옴표가 없는 키, NaN 또는 Infinity는 모두 거부됩니다. 이는 JSON이 아닌 JSON5 또는 JavaScript 개체 리터럴 기능입니다. 발견한 유효성 검사기의 이름을 지정하므로 거부는 최소한 조치가 가능합니다.

숫자는 IEEE-754 두 배로 구문 분석되며, 이는 JSON.parse가 수행하는 작업입니다. 2^53 이상의 정수는 왕복 시 정밀도를 잃습니다. 큰 식별자를 처리하는 경우 JSON 자체의 문자열이어야 합니다. JavaScript 도구에서는 형식이 표현할 수 없는 값을 복구할 수 있는 방법이 없습니다.

키 순서는 작성된 대로 유지되며 선택적 정렬은 객체 키에만 적용됩니다. 배열 순서를 변경하면 표시가 아닌 데이터가 변경되므로 배열 순서는 변경되지 않습니다.

약 8자를 초과하는 문서는 거부됩니다.

구문 변환기

9가지 직접 변환 — JSON에서 YAML로, YAML에서 JSON으로, JSON에서 XML로, XML에서 JSON으로, JSON에서 TOML로, TOML에서 JSON으로, YAML에서 TOML로, TOML에서 YAML로, JSON에서 CSV로. 해당 목록에 없는 항목은 존재하는 경로의 이름을 지정하는 문장으로 거부됩니다. 전체 규칙 세트는 변환기 페이지에 있습니다. 이 섹션에는 전환이 중지되는 위치가 나와 있습니다.

CSV는 작성되고 읽혀지지 않습니다. 이를 읽는다는 것은 구분 기호, 인용 방언, 헤더 행 및 모든 셀의 유형을 추측하는 것을 의미합니다. 4번은 변환기가 조용히 잘못되었다고 추측합니다.

댓글은 모든 방향, 모든 형식에서 손실됩니다.

YAML은 JSON 형식의 데이터만 생성할 수 있는 제한된 스키마로 로드됩니다. 사용자 정의 및 언어별 태그 — !!js/function, !!python/object/apply, !!binary, !!timestamp, !!set, !!omap —는 거부됩니다. 이는 의도적인 것입니다. 이를 구성하는 로더는 임의 개체 생성자입니다.

기본 JSON 스키마에서 "~" 및 빈 값은 null이 아닌 문자열이고 "yes"는 "yes" 문자열입니다. 핵심 스키마 옵션은 대부분의 사람들이 기대하는 방식으로 이러한 문제를 해결합니다. 둘 다 안전합니다. 스칼라 해석이 다르며 도구는 선택 시점에서 어느 것이 무엇인지 설명합니다. NO도 거짓으로 읽지 않습니다. 이는 YAML 1.1 동작이고 이는 YAML 1.2입니다.

다중 문서 YAML 스트림은 문서 배열이 됩니다. 여기에는 스트림이 있는 다른 형식이 없기 때문입니다. 앵커와 별칭은 보존되지 않고 확인되고, 재귀 별칭은 거부되며, 별칭을 따른 후 백만 값을 넘어 확장되는 문서는 거부됩니다(YAML "십억 웃음" 패턴). 반복되는 매핑 키는 마지막 값을 유지하며 도구에서는 그렇게 말합니다.

YAML 무한대 및 NaN은 대상 형식으로 표현되지 않습니다. JSON.stringify가 자동으로 null을 쓰도록 하는 대신 도구가 변환하고 해당 일이 발생했음을 경고합니다.

DOCTYPE을 포함하는 XML 문서는 무해한 문서도 포함되어 완전히 거부되므로 외부 엔터티를 확인할 수 없으며 엔터티 체인을 확장할 수 없습니다. 이를 허용할 수 있는 옵션이 없습니다. XML 혼합 콘텐츠는 하위 요소를 기준으로 텍스트 위치를 잃습니다. 반복되는 단일 요소는 반복되지 않는 요소와 구별할 수 없으며 유형 추론이 켜지지 않는 한 모든 값은 문자열입니다.

TOML에는 JSON, YAML 및 XML에 없는 네 가지 임시 유형이 있습니다. 각각은 작성된 RFC 3339 문자열이 되므로 TOML 왕복은 해당 값을 문자열로 변경합니다. 무손실 경로는 없습니다. TOML에는 null이 없으므로 TOML 출력에서 ​​null 키가 삭제됩니다. TOML 문서의 루트는 테이블이어야 하므로 JSON 배열이나 스칼라는 전혀 TOML이 될 수 없습니다. 2^53 이후의 정수는 자동으로 반올림되지 않고 문자열이 됩니다.

CSV는 빈 문자열과 null을 구별할 수 없습니다. 중첩된 값은 점으로 구분된 열 이름으로 평면화되므로 이미 점이 포함된 키는 이스케이프되지 않고 경고되는 모호한 이름을 생성합니다. =, +, -, @로 시작하는 텍스트 셀, 탭 또는 캐리지 리턴 앞에는 아포스트로피가 붙습니다. 스프레드시트에서는 이를 수식으로 실행하기 때문입니다.

입력은 형식별로 제한됩니다: JSON의 경우 8백만 자, XML의 경우 4백만 자, YAML 및 TOML의 경우 2백만 자. CSV 출력은 100,000 행과 2,000 열로 제한됩니다.

Base64

텍스트만 가능합니다. 여기에는 파일 업로드가 없습니다. 파일을 인코딩하려면 파일을 읽어야 하며 이 툴킷은 텍스트 상자를 중심으로 구축되었습니다. 이를 위해 파일 지향 도구를 사용하십시오.

디코딩은 바이트가 유효한 UTF-8일 때 텍스트를 생성하고, 그렇지 않을 때 깨끗한 오류를 보고합니다. 이 시점에서 바이트 뷰는 대신 16진수를 표시합니다. 임의의 바이너리 페이로드는 텍스트가 아니며, 그렇지 않은 척하면 텍스트가 손상될 수 있습니다.

약 4자를 초과하는 입력은 거부됩니다.

URL 인코딩

제공되는 세 가지 규칙(구성 요소, 전체 URL 및 양식)은 플랫폼이 정의하는 세 가지 규칙입니다. 애플리케이션별 변형(AWS SigV4 정규화, OAuth 1.0a 백분율 인코딩)은 약간씩 다르며 제공되지 않습니다.

URL 검사기에는 구성표가 포함된 절대 URL이 필요합니다. 상대 경로에는 호스트, 경로 및 쿼리가 없기 때문에 이를 분해할 수 없습니다.

국제화된 도메인 이름은 브라우저가 표준화한 대로 표시되며, 이는 원래 스크립트가 아닌 퓨니코드일 수 있습니다.

HTML 엔터티

명명된 엔터티 테이블은 마크업에 중요한 문자, 타이포그래피, 통화, 화살표, 수학, 그리스어 및 라틴어(1)와 같은 실용적인 하위 집합을 다룹니다. 모든 2,231 HTML5 명명된 참조는 아닙니다. 그 밖의 이름은 당신을 위해 나열되고 쓰여진 그대로 그대로 남습니다. 왜냐하면 문자를 만드는 것은 텍스트를 그대로 두는 것보다 더 나쁠 것이기 때문입니다.

종료 세미콜론이 필요합니다. HTML5는 레거시 참조가 없는 몇 가지 레거시 참조를 허용하지만 이를 올바르게 해결하는 것은 독립형 텍스트 도구에는 없는 주변 마크업에 따라 달라집니다.

디코딩은 단일 패스이므로 "&amp;lt;" "<"가 아닌 "&lt;" 텍스트로 디코딩됩니다. 맞습니다. 이중 인코딩은 아마도 의도적인 것 같습니다.

이는 HTML의 텍스트를 이스케이프합니다. 이는 HTML 삭제 프로그램이 아닙니다. 마크업으로 가득 찬 문서를 가져와서 위험한 부분을 제거하지 않습니다. 그것은 다르고 훨씬 더 어려운 일입니다.

타임스탬프

단위 감지는 경험적 방법입니다. 10^11 이상은 밀리초로 읽혀집니다. 항상 표시되고 항상 재정의할 수 있지만 모호한 입력에 대한 추측입니다.

일부 데이터베이스에서 생성되는 마이크로초 및 나노초 타임스탬프는 감지되지 않습니다. 먼저 1,000 또는 1,000,000로 나눕니다.

변환은 윤초가 없는 POSIX 시간을 사용합니다. 23:59:60는 Unix 타임스탬프에 없기 때문에 여기에 존재하지 않습니다.

현지 시간 렌더링은 브라우저에 구성된 영역을 사용합니다. 렌더링할 임의의 IANA 영역을 선택할 수 없습니다.

해당 시대로부터 약 ±273,790년을 초과하는 값은 JavaScript 날짜가 나타낼 수 있는 범위를 초과하므로 거부됩니다.

UUID

버전 4(임의)만 생성됩니다. 버전 1 및 6에는 MAC 주소와 안정적인 클럭 시퀀스가 ​​필요합니다. 버전 7에는 가치가 있는 단조 카운터가 필요합니다. 버전 3 및 5은 이름 기반이며 이 목적을 위해 브라우저가 노출하지 않는 네임스페이스와 해시가 필요합니다.

유효성 검사기는 표준 텍스트 형식을 인식하고 버전과 변형을 보고합니다. UUID가 잘 생성되었는지 여부는 알 수 없습니다. 약한 생성기에서 생성된 버전-4 UUID는 좋은 생성기와 동일해 보입니다.

배치는 500 값으로 제한됩니다.

Web Crypto가 없으면 아무것도 생성되지 않습니다. Math.random()로 대체하면 예측 가능한 식별자가 생성되므로 도구는 대신 거부합니다.

SHA 해시

SHA-1, SHA-256, SHA-384 및 SHA-512만 해당됩니다. 왜냐하면 SubtleCrypto가 구현하는 것이기 때문입니다. MD5는 필요와 선택에 의해 존재하지 않습니다.

SHA-1는 레거시 상호 운용성을 위해 존재하며 나타나는 모든 곳에서 암호화된 것으로 표시됩니다. 보안이 중요한 용도로는 사용하지 마십시오.

텍스트만 — 파일 해싱이 없습니다. 같은 이유로 base64에는 파일 입력이 없습니다.

HMAC 없음, 키 파생 없음, 비밀번호 해싱 없음. 비밀번호에는 Argon2id, scrypt 또는 bcrypt와 같은 느리고 솔트 처리된 메모리 하드 기능이 필요합니다. 빠른 범용 해시는 잘못된 도구이며 이를 사용하는 것은 작은 실수라기보다는 심각한 실수입니다.

텍스트 차이

라인 수준 비교만 가능합니다. 변경된 줄 내에는 단어 수준이나 문자 수준 강조 표시가 없습니다.

수정된 행은 제거와 추가로 표시되며, 이는 행 기반 편집 스크립트가 이를 나타내는 방식입니다.

비교하기 전에 동일한 선행 및 후행 줄을 잘라내므로 한 곳에서 다른 대용량 파일이 빠릅니다. 남은 것은 측면마다 다른 줄 2,000으로 제한되며, 그 이상은 탭을 죽이는 할당을 시도하는 대신 도구가 거부합니다.

3방향 병합, 패치 적용 및 구문 인식이 없습니다.

JWT 디코딩

디코딩만 가능합니다. 서명은 확인되지 않으며 이는 변경되지 않습니다. 이유는 토큰 가이드에 설명되어 있습니다.

암호화된 토큰(JWE, 5개 세그먼트)은 키 없이 디코딩할 수 없습니다. 도구는 이를 식별하고 중지합니다.

중첩된 토큰은 자동으로 풀리지 않습니다. 내부 토큰을 별도로 디코딩합니다.

RFC 7519 등록 세트 외부의 클레임은 해당 의미가 애플리케이션별로 다르기 때문에 해석 없이 표시됩니다.

200,000자를 초과하는 토큰은 거부됩니다.

HTML WYSIWYG 편집기

Sanitiser는 전체 HTML5 파서가 아닌 문자열 토크나이저를 기반으로 구축된 이 편집기의 자체 출력에 대한 허용 목록입니다. 이는 범용 XSS 필터가 아니며 이를 그대로 사용하는 것은 실수입니다. 브라우저는 의도적으로 잘못된 형식의 페이로드를 이 토크나이저가 수행하는 것과는 다른 트리로 구문 분석할 수 있습니다. 신뢰할 수 없는 HTML은 실제 파서에 대해 실행되는 서버측 삭제기에 속합니다.

단락, 제목, 강조, 목록, 링크, 인용문, 코드 및 소수의 인라인 태그 등 나열된 요소만 살아남습니다. 다른 모든 항목은 풀리므로 텍스트는 그대로 유지되고 태그는 그대로 유지됩니다. 이미지, 표, 색상, 글꼴, 인라인 스타일이 모두 없으며 추가할 방법이 없습니다.

스크립트, 스타일, iframe, 개체, 삽입, 양식, svg, 수학 및 기타 원시 텍스트 또는 외부 콘텐츠 요소는 내부의 모든 요소와 함께 제거됩니다.

링크에는 http, https, mailto, tel, ftp 또는 상대 주소를 사용할 수 있습니다. javascript:, data: 및 blob:을 포함한 다른 모든 것은 거부되며 이 도구의 엔터티 테이블 외부에 있는 문자 참조를 포함하는 주소도 거부됩니다.

편집 화면에서는 document.execCommand를 사용합니다. 더 이상 사용되지 않으며 대체 기능이 어떤 브라우저에서도 구현되지 않으며 특히 중첩 목록의 경우 엔진마다 동작이 다릅니다. 소스 모드는 명령이 잘못된 작업을 수행할 때의 탈출구입니다.

500,000자를 초과하는 문서는 거부됩니다.

Chmod 계산기

12개의 권한 비트만 해당: 소유자, 그룹 및 기타에 대한 읽기, 쓰기 및 실행과 setuid, setgid 및 고정. 액세스 제어 목록, 확장 속성, SELinux 컨텍스트, 기능 및 Windows ACL은 모두 모드가 표현할 수 있는 범위를 벗어납니다.

빌드되는 명령은 복사할 수 있는 텍스트입니다. 아무 것도 실행되지 않으며 컴퓨터의 어떤 파일도 읽거나 변경되지 않습니다. 경로 필드는 명령을 입력하기 위해서만 존재합니다.

umask 산술을 계산하지 않으며 웹 페이지가 파일 시스템을 볼 수 없기 때문에 주어진 파일이 현재 어떤 모드를 가지고 있는지 알 수 없습니다.

Docker를 실행하여 작성

하나의 docker run 명령이 하나의 서비스가 됩니다. 다중 컨테이너 설정은 각 명령을 변환하고 결과를 직접 병합하여 구성해야 합니다.

--mount, --gpus, --device, --link, --volumes-from, --network-alias 및 기타 12개 플래그에는 이 변환기가 작성하는 것과 동등한 플래그가 없습니다. 각각은 사라지는 대신 플래그 이름을 지정하는 경고를 생성합니다.

변환기가 인식하지 못하는 플래그는 값을 갖지 않는 것으로 간주되어 경고에 표시됩니다. 하나를 취했다면 그 값은 잘못 읽힌 것입니다. 플래그를 제거하고 그 효과를 직접 추가하십시오.

아무 것도 실행되거나 평가되거나 쉘에 전달되지 않습니다. 명령은 인용을 이해하는 토크나이저에 의해 분할되며 다른 것은 없습니다. 따라서 변환기는 $VARIABLES를 확장하거나 $(subshells)를 해석하거나 --env-file을 읽을 수 없습니다. 세 가지 모두 무언가를 실행하거나 파일을 여는 것을 의미하기 때문입니다.

출력에서 올바른 YAML 인용이 확인되지만 Compose 사양에 대해 유효성이 검사되지 않으며 존재 여부를 확인하기 위해 이미지가 연결되지 않습니다.

100,000 문자를 초과하는 명령은 거부됩니다.

크론탭 생성기

5개 필드로 구성된 crontab 구문만 해당됩니다. 6필드 Quartz 및 systemd 표현식은 설명과 함께 거부되며, 비표준 연산자 L, W, # 및 ?, 미리보기 일정이 없는 @reboot도 마찬가지입니다.

날짜 및 요일 필드는 둘 다 제한된 경우 OR로 결합되어 Vixie cron과 일치합니다. 이 도구는 해당 사항이 적용될 때마다 경고합니다. 이는 크론 행을 잘못 읽는 경우가 가장 많기 때문입니다.

다음 실행 시간은 브라우저의 국제 시간대 데이터에서 가져옵니다. 이것은 약속이 아니라 미리보기입니다. cron을 실행하는 머신은 다른 영역, 다른 tzdata 버전을 사용할 수도 있고, 단순히 그 당시에 실행되고 있지 않을 수도 있습니다.

미리보기는 5년 후를 검색합니다. 그보다 더 드문 일정(예를 들어 29 2월)에는 5회 미만의 실행이 표시됩니다.

붙여넣은 내용은 어떻게 되나요?

  • 모든 변환, 해시, 디코드 및 차이점은 브라우저 탭에서 실행됩니다. 페이지가 로드된 후에는 관련된 서버가 없기 때문에 입력이 서버에 업로드되거나 기록되거나 저장되지 않습니다.
  • 해시는 브라우저의 자체 웹 암호화 구현에서 나오고 UUID는 암호화된 보안 무작위 생성기에서 나옵니다. 둘 다 네트워크 호출과 관련이 없습니다.
  • 귀하가 입력하는 내용은 로컬 저장소나 쿠키에 기록되지 않습니다. 페이지를 다시 로드하면 페이지가 삭제됩니다. 탭을 닫으면 삭제됩니다.
  • 사이트 전체 분석은 구성된 정식 프로덕션 호스트에서만 실행되며 개인정보 보호정책에 공개됩니다. 로컬 및 미리보기 호스트는 이를 거부합니다. 붙여넣은 값, 토큰, URL 및 파일 내용은 ToolAcre 자체 분석 이벤트에서 제외됩니다. 현재 구성에서는 광고가 비활성화되어 있습니다.
  • 즉, JWT 또는 API 키는 실시간 자격 증명입니다. 안전한 습관은 자신이 작성하지 않은 웹 페이지에 내용을 붙여넣지 않는 것입니다. 이 내용을 포함하여 그 주장은 신뢰할 만합니다.

질문

해싱 또는 base64를 위한 파일 업로드를 추가하시겠습니까?

그럴 수도 있지만 텍스트 상자에 작은 추가 기능을 추가하는 것이 아니라 파일 읽기, 진행 상황 보고, 대용량 파일에 대한 메모리 보호 등 다른 종류의 도구입니다. 오늘 대답은 '아니요'입니다.

JWT 디코더에 서명 확인을 추가하시겠습니까?

아니요. 확인을 위해서는 발급자의 키와 토큰 외부에 고정된 알고리즘이 필요하며, 둘 중 하나를 요구하는 웹페이지는 토큰 위조 기능을 요구합니다. 한계는 기능입니다.

단지 느린 것이 아니라 큰 입력을 거부하는 이유는 무엇입니까?

브라우저 탭의 "slow"은 페이지가 응답하지 않음을 의미하고 휴대폰에서는 종종 탭이 종료되고 입력이 사라짐을 의미하기 때문입니다. 명시된 한계를 지닌 명확한 거부는 결코 끝나지 않는 스피너보다 더 유용합니다.

이것을 오프라인으로 사용할 수 있나요?

페이지가 로드된 후에는 그렇습니다. 툴킷에는 네트워크가 필요하지 않습니다. 서비스 워커가 없으므로 첫 번째 로드에는 연결이 필요합니다.

제한사항

  • 이 페이지 자체가 제한 사항 목록입니다. 위의 각 섹션에는 하나의 유틸리티가 수행할 수 없는 작업이 설명되어 있습니다.
  • 제한은 여기에 문서화되어 있을 뿐 아니라 코드에 적용되고 인터페이스에 보고됩니다.