私は、テンプレート、いくつかのビジネスオブジェクトを受け取り、HTML を生成してから PDF にする機能のようなメールマージを持っています。
RazorEngineを使用して、テンプレート + モデルを HTML ビットに変換しています。
ユーザーにテンプレートを指定させるとしたら、どのようなリスクがありますか? リスクを軽減することは可能ですか?
たとえば、ユーザーは任意のコードを実行できますか? (ファイルの削除、データベースの変更など?) このようなことを検出できる方法はありますか? (一般的には不可能であることはわかっていますが、かみそりテンプレートのコードのビットは、モデル プロパティの取得、またはモデル プロパティ値に基づく if ステートメントである必要があります)。
私は基本的にここのユーザーを信頼しています (これは小規模なプライベート プロジェクトです) が、テンプレート エンジンが進むにつれて、このエンジンはこのアプリケーションに対して過度に強力に見えます。