문서·데이터 라이브러리Document & data libraries

csv-injection-safe-export

엑셀과 시트에서 안전하게 열리는 CSV를 만듭니다. 따옴표 처리와 수식 접두어 무력화를 함께 합니다.

GitHub에서 보기View on GitHub

어떤 문제를 푸나The problem

셀이 =, +, -, @로 시작하면 스프레드시트에서 수식으로 실행될 수 있습니다. 신뢰할 수 없는 문자열을 내보낼 때 흔히 일어나는 일입니다. 이 인코더는 모든 필드를 따옴표로 감싸고 위험한 값에는 앞에 작은따옴표를 붙입니다. 공백이나 제어 문자, 영 너비 문자 뒤에 숨은 수식도 막습니다.

이런 분께 맞습니다Who it is for

사용자 입력이 든 데이터를 CSV로 내보내는 웹 서비스 개발자.

무엇을 하나What it does

  • toCsv(rows, {bom})는 CRLF로 행을 잇고 기본으로 UTF-8 BOM을 붙입니다.
  • csvCell(value)는 스칼라만 받고 객체는 TypeError입니다.
  • 음수도 텍스트로 보존하려고 접두어를 붙입니다. 내보낸 값 앞에 작은따옴표가 생기므로 대상 앱에서 확인하십시오.

직접 돌려 본 출력Real output

저장소의 examples 폴더를 실행한 결과입니다.

$ node examples/quickstart.mjs
"name","note"
"alice","'=HYPERLINK(""http://example.invalid"",""click"")"
"bob","said ""hi"", then left"
"carol","'-5"
"dave","line one
line two"
---
"'@SUM(A1:A9)"
reject: CSV values must be scalar

알아둘 한계Limits

  • CSV 수식 무력화이지 HTML 이스케이프나 범용 새니타이저가 아닙니다.

받아서 쓰기Get it

# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/csv-injection-safe-export.git

# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/csv-injection-safe-export.git ~/.claude/skills/safe-csv-export

정보Info

분류Category
문서·데이터 라이브러리Document & data libraries
형태Type
라이브러리Library
라이선스License
MIT
필요한 것Requires
Node.js 22 이상
저장소Repository
csv-injection-safe-export
토픽Topics
csv csv-injection formula-injection security javascript esm excel zero-dependencies

2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.

공유하기Share

문자Message 네이버 블로그Naver Blog X Facebook