Angular 8 PWA アプリに取り組んでいます。アプリの一部により、クライアントは独自のカスタム フォームを作成してデータを収集できます。
開発の一環として、データを操作するための一連の関数をまとめています。ただし、すべてのシナリオに機能を提供するのは難しいため、ユーザー管理者が独自のスクリプトを作成してデータベースに保存し、フォームで実行できるようにすることを検討しています。
これを有効にするために、スクリプトを渡すことを検討していますDomSanitizer.bypassSecurityTrustScript()
またはおそらく「邪悪な」javascripteval()
これは、アプリ内の限られた機能セットへのアクセスを提供する分離された機能内で実行されます。例えば:
if (fnGetFieldValue('FIELD1') === fnGetFieldValue('FIELD2')) {setFnFieldValue('FIELD3')= 'PASS')}
fnGetFieldValue() と setFnFieldValue は、限定された一連の操作を実行するためにスクリプトからアクセスできる関数として定義されます。
問題は、明らかな XSS スクリプト攻撃であるこの機能を許可することに関して、重大なセキュリティ上の懸念があるということです。これらのユーザー カスタム スクリプトを安全に実行するための戦略はありますか?
Squarepace、Zoho、powerapps などの企業がユーザーにカスタム コードの実行を許可している場合、これらのソリューションも同じ問題を起こしやすいのではないでしょうか? evalの「悪」の使用を回避する方法を知っている人はいますか?
これについての考えと、これを処理していくつかの関連する機能をサニタイズできる npm パッケージがあるかどうかを評価してください。