マルチユーザー Web アプリケーションを構築しています。各ユーザーは、アプリケーションの下に独自のサイトを持つことができます。ユーザーがセキュリティ上の問題なくテンプレートを変更できるようにする方法を検討していますか? Python テンプレート エンジンをいくつか評価しました。たとえば、genshi は非常に優れたテンプレート エンジンですが、genshi テンプレートをユーザーが変更できるようにするのは危険です。次のような構文があります。
<?python
?>
この構文を使用すると、Python で実行できることは何でも実行できます。パラメータを渡すことでシャットダウンできるようです。しかし、まだ多くの潜在的な問題があります。たとえば、ユーザーは組み込み関数や渡された変数のメソッドにアクセスできます。たとえば、ORM オブジェクトをテンプレートに渡すとします。ユーザーに触れさせたくないメソッドと変数が含まれている可能性があります。これが好きかもしれません:
site.metadata.connection.execute("drop table xxx")
私の質問は、ユーザーがセキュリティの問題なしに自分のサイトのテンプレートを変更できるようにするにはどうすればよいですか? 任意の python テンプレート エンジンを使用できます。
ありがとう。