Hacker News 의견
  • quickjs-emscripten 라이브러리의 저자가 라이브러리의 표준 라이브러리를 칭찬함

    • 브라우저나 번들러에서 실행해봤는지 질문함
    • Webpack과 같은 번들러와의 호환성 문제를 지적함
    • 보안 경고: 라이브러리가 게스트 코드가 호스트의 fetch 함수와 동일한 쿠키를 사용하여 fetch를 호출할 수 있게 함
    • 신뢰할 수 없는 코드를 실행할 때 주의해야 함
    • quickjs-emscripten이 저수준이고 마법 같은 기능을 피하는 이유는 보안성을 보장하기 위함
    • 신뢰할 수 없는 코드를 실행할 때 샌드박스와 API를 신중하게 감사해야 함
    • Figma의 플러그인 샌드박스 보안에 대한 블로그 포스트를 참고할 것을 권장함
  • 이전 직장에서 quickjs-emscripten 사용 중 많은 "segmentation faults"와 오류를 경험했음

    • 프로젝트가 중단되었고, 다시 한다면 공식적으로 지원되는 wasm 번들을 사용할 것임
  • JavaScript를 샌드박스하는 여러 방법이 있음

    • DOM 접근을 샌드박스하는 방법이 있는지 질문함
    • iframes가 유일한 기술이지만 무겁고 느림
    • 플러그인을 호스팅하는 앱을 작성 중이며, 플러그인에 DOM 접근을 허용하면 문제가 생길 수 있음
  • 브라우저에서 실행 가능한지 질문함

    • 지원되는 환경에 대한 언급을 찾을 수 없음
  • quickjs를 사용해봤으나 최종적으로 isolated-vm을 선택했음

    • 두 라이브러리 모두 보안 요구사항을 충족했으나, isolated-vm이 성능 면에서 더 우수했음
  • 다른 JS 샌드박스 라이브러리의 저자가 quickjs-emscripten 접근법을 흥미롭게 생각함

    • JS-in-JS 또는 JS-in-WASM이 높은 수준의 격리를 제공한다고 언급함
    • Node.js가 격리와 샌드박싱을 염두에 두고 설계되지 않았음을 지적함
    • createRuntimefetch 외에 호스트 환경에 대한 호출을 정의할 수 있는지 질문함
    • 브라우저 지원이 유용할 것이라고 언급함
  • 이 라이브러리를 통해 사용자가 제공한 JS 코드를 실행할 수 있을 것이라고 생각함

    • 번들러를 샌드박스 환경에서 실행하는 방법에 대한 추천을 요청함
  • QuickJS의 성능이 호스트 JS VM과 경쟁할 수 없음을 언급함

    • 오래된 C 인터프리터나 JavaScript로 구현된 인터프리터보다는 빠름
  • quickjs-emscripten의 고수준 래퍼를 작업 중이었음

    • quickjs-emscripten의 API가 quickjs의 C API와 매우 유사하여 사용하기 어려움
    • require() 지원 구현이 어려움
    • 모듈 파일을 메모리 파일 시스템에 미리 로드하는 방법을 사용함
  • quickjs-emscripten-sync 라이브러리가 호스트와 게스트 함수의 자동 동기화를 제공하는데, 이는 큰 공격 표면이 될 수 있음

    • 샌드박스를 탈출할 가능성에 대해 우려함
  • wasm으로 컴파일되었기 때문에 브라우저에서 실행 가능한지 질문함

    • 쿠키를 첨부하지 않고 fetch 요청을 할 수 있는지 궁금해함