반응형
최근 공급망 공격이 핫하다. 사용자의 프로그램을 타켓 삼는 것보다 중간 라이브러리를 타켓 삼는 데 성공한다면 해당 라이브러리를 사용하는 불특정 다수 모두가 타겟이 되기 때문이다. 물론 대형 패키지일수록 파급력이 크지만 그만큼 감시하는 눈이 많아 들키기도 쉽다. 최근 벌어진 공급망 공격들도 모두 수 시간 이내로 진압이 되었다.
하지만 그 수 시간 사이에 재수 없게 내가 걸릴 수도 있다. (특히 나는 주기적으로 패키지 업데이트를 실행한다..) 내가 직접 설치하지 않더라도 다른 패키지가 공격당한 패키지를 의존하는 바람에 쥐도 새도 모르게 당할 수 있다. 이를 방어하는 방법은 의외로 매우 단순하다. 배포된 지 얼마 되지 않은 패키지는 거르는 것. 여러 패키지 매니저가 관련 설정을 지원한다.
해당 설정을 정리해 둔다. 나는 기준을 3일로 잡았다. 패키지 매니저마다 시간 단위가 다름에 유의할 것
npm
# 전역
npm config set min-release-age=3
# 프로젝트
npm config set min-release-age=3 --location=project
단위는 일이다.
pnpm
# 전역
pnpm config set minimumReleaseAge 4320
# 프로젝트
pnpm config set minimumReleaseAge 4320 --location=project
단위는 분이다.
yarn
# 전역
yarn config set npmMinimalAgeGate 3d -H
# 프로젝트
yarn config set npmMinimalAgeGate 3d
bun
[install]
minimumReleaseAge = 259200
단위는 초이고, 따로 설정하는 명령어는 없다. 프로젝트별로 루트에 bunfig.toml 파일을 만들거나 전역으로 설정하고 싶다면 홈 디렉토리에 .bunfig.toml 파일을 만들면 된다.
deno
{
"minimumDependencyAge": "4320"
}
단위는 분이고, 따로 설정하는 명령어는 없다. 프로젝트별로 루트에 deno.json 파일을 만들면 된다.
반응형
'프로그래밍 > 웹' 카테고리의 다른 글
| [JavaScript] 개발자 도구 감지하기(+우회) (0) | 2025.12.23 |
|---|---|
| 자바스크립트 함수 성능 벤치 사이트 (0) | 2025.12.10 |
| 모바일에서 개발자 콘솔 사용하기 (0) | 2025.06.24 |
| [Node.js] Fast Node Manager(fnm) 설치하기 (0) | 2024.07.14 |
| [자작] 네이버 카페 패스 (다음 카페 지원) (4) | 2024.02.17 |
| [JavaScript] DOMContentLoaded 이벤트가 작동하지 않을 때 (0) | 2023.06.18 |
| [JavaScript] query string를 object로 변환하기 (0) | 2023.04.23 |
| [JavaScript] Debounce, Throttle 함수 (0) | 2023.03.18 |


