webフロントエンドにおいて、実用的なプラグインシステム(ユーザーの書いたコードを安全に実行する環境)をどのように実現するか
SaaSなどのWebサービスには画面や挙動をユーザでカスタマイズできる機能を提供するものがあり、Webフロントエンドにおいてはユーザの作成したJavaScriptを実行することでこれらの機能を実現することが多いです。
一方で、ユーザーの作成したコードを無責任に実行することは重大なセキュリティリスクに繋がります。また仮に悪意がないコードだとしても、以下のような問題を容易に発生させます。
これらの問題を避けるためには、ユーザーの作成したコードを安全に隔離しつつ、細かく権限を設定できる仕組みが必要です。
このセッションでは、「ユーザーが追加したスクリプトを実行する機能」や「プラグイン/カスタマイズ機能」の開発における課題と、その解決策となる関連技術について解説します。より具体的には、実際にtoBのSaaSサービスで「ユーザーの作成したコードを実行する新しいプラグイン機能」を設計・開発した経験をもとに、以下のような内容について話します。
これらの「プラグイン/カスタマイズ機能」開発に携わる方々をサポートするとともに、「JavaScriptを安全に実行する」という観点から、ブラウザのセキュリティ機構やJavaScriptエンジンの仕組みへの理解を深めるきっかけを提供することを目指します。