19P by xguru 2022-11-21 | favorite | 댓글 1개
  • Figma가 플러그인을 실행할 때 보안 취약점을 없애기 위해 사용하는 방법
  • Fabrice Bellard가 C로 작성한 QuickJS를 WebAssembly로 컴파일하고 JavaScript/TypeScript 바인딩을 제공
  • ES2020 수준의 자바스크립트를 안전하게 실행 가능
  • QuickJS 런타임 내부의 값을 생성하고 조작
  • 호스트의 함수를 QuickJS 안에서 이용
  • Asyncify : Synchronous 한 C/C++ 코드를 Asynchronous 한 JavaScript 코드에서 호출 및 C 코드내에서 비동기 JS 코드의 실행이 끝나기를 대기 가능

웹상에서 JS 플러그인을 운영하는 시스템들에게는 보안상 굉장히 훌륭한 방식이라고 생각됩니다.
Ryan Dahl의 JavaScript Containers에 대한 생각 에도 연결되는 것 같고요.

QuickJS Javascript Engine - 작고 빠르고 임베드 가능한 자바스크립트 엔진
Figma 의 An update on plugin security

이와 비슷하지만 좀 더 간단한 API로 구현된 코드 define-function : quick.js based sandbox