QuickJS-emscripten : คอมไพล์และรัน QuickJS เป็น WASM
(github.com/justjake)- วิธีที่ Figma ใช้เมื่อรันปลั๊กอินเพื่อกำจัดช่องโหว่ด้านความปลอดภัย
- คอมไพล์ QuickJS ที่ Fabrice Bellard เขียนด้วย C ให้เป็น WebAssembly และมี JavaScript/TypeScript bindings ให้
- รัน JavaScript ระดับ ES2020 ได้อย่างปลอดภัย
- สร้างและจัดการค่าต่าง ๆ ภายในรันไทม์ของ QuickJS
- ใช้งานฟังก์ชันของโฮสต์จากภายใน QuickJS
- Asyncify : เรียกโค้ด C/C++ แบบ synchronous จากโค้ด JavaScript แบบ asynchronous ได้ และสามารถรอให้การทำงานของโค้ด JS แบบ asynchronous ภายในโค้ด C เสร็จสิ้นได้
1 ความคิดเห็น
ผมคิดว่านี่เป็นแนวทางที่ยอดเยี่ยมมากในแง่ความปลอดภัยสำหรับระบบที่ให้บริการปลั๊กอิน JS บนเว็บ
ดูเหมือนว่าจะเชื่อมโยงกับ ความคิดของ Ryan Dahl เกี่ยวกับ JavaScript Containers ด้วย
QuickJS Javascript Engine - เอนจิน JavaScript ขนาดเล็ก เร็ว และฝังตัวได้
Figma: An update on plugin security
มีโค้ดที่คล้ายกันแต่พัฒนาด้วย API ที่เรียบง่ายกว่านี้คือ define-function : quick.js based sandbox