Fork me on GitHub

2021-07-14: Firefox 90, npm audit 문제, Access Guide

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #548 - Firefox 90 릴리스.

Firefox 90에서는 ECMAScript Proposal Stage 4의 Private class fields를 기본적으로 지원하고 Stage 3 String/Array의 at()를 지원한다. FTP 지원을 삭제했고 WheelEvent의 호환성을 개선했다.

또, Chrome에 구현 돼 있던 Fetch metadata request headers도 구현됐다.
Sec-Fetch-Site, Sec-Fetch-Mode, Sec-Fetch-User, Sec-Fetch-Dest 요청 헤더가 각 요청에 추가돼 서버에서 요청을 검사 할 때 이용할 수 있다.

Fetch metadata request headers는 Safari를 비롯한 IE 이외의 브라우저에도 구현돼 있다.


npm audit: Broken by Design — Overreacted에서는 create-react-app을 예로 npm audit의 취약성 보고 방식에 문제가 있다고 전한다.

보고되는 취약성 대부분이 ReDOS(Regular expression Denial of Service)이며(대부분 문제가 되지 않는), devDependencies로 다루는 도구에 대한 보고는 오탐지(false positive)에 가까운 경우가 많고, 에코시스템으로서 대응이 어렵게 돼 있는 부분에 대해 우려를 나타내고 있다.

GitHub에서 공개한 GitHub’s Advisory Database 데이터를 보더라도 2021년에는 CWE-400인 DoS가 가장 많은 보고가 이뤄져 있고, ReDOS 보고가 증가하고 있다는 사실을 알 수 있다.

도구가 과잉 보고하는 문제 속에서 실제 중요한 문제가 뒤섞여 무시될 가능성에 대한 우려, 이 문제를 어떻게 회피해 볼 수 있을지, npm audit and audit-resolve.json 등 RFC에 대해서도 이야기한다.


Access Guide에는 WCAG 2.1 접근성 가이드가 작성돼 있다.
각 토픽별 해설 및 구현 방법, 테스트 방법 등 리소스가 정리 돼 있다.


헤드라인


html2canvas/CHANGELOG.md at master · niklasvh/html2canvas

github.com/niklasvh/html2canvas/blob/master/CHANGELOG.md#100-2021-07-04

JavaScript canvas library ReleaseNote

HTML을 Canvas로 스크린샷을 찍는 html2canvas 1.0.0 릴리스


Release v8.0.0 · nestjs/nest

github.com/nestjs/nest/releases/tag/v8.0.0

node.js library ReleaseNote

Nest.js 8.0.0 릴리스.
Logger 클래스 개선, API Versioning 지원


Release 8.9.2 · mermaid-js/mermaid

github.com/mermaid-js/mermaid/releases/tag/8.9.2

JavaScript diagram library ReleaseNote security

mermaid 8.9.2에서 %%{init: {<JSON_OBJECT>}}%% 설정 기법을 사용한 XSS 취약점과 프로토타입 오염(Prototype pollution) 취약점이 수정됐다.


Firefox 90.0, See All New Features, Updates and Fixes

www.mozilla.org/en-US/firefox/90.0/releasenotes/

Firefox ReleaseNote

Firefox 90 릴리스.
ES Proposal Stage 4의 Private class fields를 기본적으로 지원, Stage 3의 String / Array의 at() 지원.
FTP 지원 삭제, WheelEvent의 호환성 개선 등.


Release 2.27.0 · prisma/prisma

github.com/prisma/prisma/releases/tag/2.27.0

TypeScript node.js MongoDB ReleaseNote

Node.js 용 ORM 라이브러리 Prisma 2.27.0 릴리스.
MongoDB를 프리뷰 지원, M1 Mac 지원, pnpm으로 설치할 수 없던 문제 수정 등.


아티클


How does Node.js load its built-in/native modules? | Joyee Cheung's Blog

joyeecheung.github.io/blog/2021/07/06/how-does-node-js-load-its-builtins-native-modules/

node.js article

Node.js 내에 JavaScript로 작성된 빌트인 모듈은 Node.js 바이너리에 어떻게 올려지고 읽혀는지 소개.
바이너피 파일의 읽기 전용 데이터 섹션에 올려지며 bootstrap에서 V8을 사용해 컴파일 및 Snapshots를 다루는 구조로 돼 있다.


Resource inlining in JavaScript frameworks

web.dev/aurora-resource-inlining/

Next.js Angular CSS performance article

Next.js와 Angular Google Fonts의 Critical CSS 인라인화.
Font를 가져오는 CSS를 인라인화 하는 것으로 CLS를 최적화 할 수 있다고 소개


npm audit: Broken by Design — Overreacted

overreacted.io/npm-audit-broken-by-design/

npm node.js library opinion article

devDependencies로 사용하는 도구에 대한 npm audit 보고 대부분이 ReDoS 취약성에 대한 것이라는 문제 제기.
이를 회피하기 위한 방법으로 제품에서 사용되는 dependencies 만 검사하는 npm audit --production, 공개하는 패키지를 인라인화 하는 방법과 또다른 문제를 소개하며 에코시스템에 대한 우려도 나타내고 있다.


TypeScript and native ESM on Node.js

2ality.com/2021/06/typescript-esm-nodejs.html

TypeScript npm node.js article

타입스크립트에서 ESM에 대응하는 방법.
package.json의 "type": "module" 설정, exports 필드와 typesVersions 필드, import하는 파일의 확장자 설정 등


jQuery에서 TypeScript・React 까지 - Vite로 시작하는 모던 고속 개발 환경 구축 - ICS MEDIA(일본어)

ics.media/entry/210708/

Tools article

Vite의 기본적인 사용 방법 소개 글.
라이브러리, TypeScript, 이미지 등 에셋 사용, 설정 파일, IE11 대응 등.


Firefox 90 supports Fetch Metadata Request Headers - Mozilla Security Blog

blog.mozilla.org/security/2021/07/12/firefox-90-supports-fetch-metadata-request-headers/

Firefox security article

Firefox 90에서 Fetch Metadata Request Headers를 지원한다.
Sec-Fetch-Site 등 교차 사이트 공격으로 부터 보호할 수 있는 Sec-Fetch-* 요청 헤더를 지원한다는 것.


사이트, 서비스, 문서


Access Guide

accessguide.io/

accessibility document

WCAG 2.1 설명 사이트.
어떤게 구현할 수 있는지, 어떻게 테스트할 수 있는지, 실제 예 등을 소개한다.


Javascript Decorators

javascriptdecorators.org/

JavaScript ECMAScript proposal Tools debug

ECMAScript Proposal의 Decorators를 시험해 볼 수 있는 Playground 도구


소프트웨어, 도구, 라이브러리


FrontLabsOfficial/vue-tiny-validate: 💯 Tiny (2.5KB minified) Vue Validate Composition

github.com/FrontLabsOfficial/vue-tiny-validate

Vue library

Vue Composition API 용 벨리데이션 라이브러리


lucacasonato/dext.ts: The Preact Framework for Deno

github.com/lucacasonato/dext.ts

deno Next.js

Next.js에서 영감을 받아 개발한 Deno 용 Preact 기반 웹프레임워크


도서


O'Reilly Japan - 처음 시작하는 WebGL 2 제 2판(일본어)

www.oreilly.co.jp/books/9784873119373/

WebGL JavaScript book

2021년 07월 21일 출간 예정인 WebGL 입문서
원서는 Real-Time 3D Graphics with WebGL 2 - Second Edition


Pull Request to this article
JSer.info Slackに参加する