2010-11-24 19 views
3

私はasp.net mvc 3 newbieです。ユーザーがレイアウトをカスタマイズして、カミソリテンプレートエンジンを使用できるサイトを開発しています。 Thayは、テンプレートファイルの編集を直接行うことができます。セーフ・レイザー・テンプレート・エンジン

allowからのみユーザーをリタイアする方法は、テンプレート内の明示的なヘルパーを使用します。私は、ユーザーが他の危険なサーバー機能にアクセスするのを嫌い、追加したものだけを使用します。

おかげ

答えて

3

2例があります。

  1. あなたのユーザーを信頼:彼らはあなたのサイト
  2. を壊さないよう、この場合には、あなたが信頼していない心配するべきではありませんあなたのユーザー(最も可能性が高い):この場合、テンプレートを直接変更する可能性を与えることは危険な出来事のようです。あなたは、あなたが欲しくない他のヘルパーをすべてフィルタリングするきれいな頑強な消毒ツールが必要です。それは広すぎる。それらにマークアップを書く可能性を与えるには、たとえばWMDのようないくつかのWYSIWYGエディタで問題はありませんが、サーバコードへのアクセス権を与えることは問題を求めています。
+1

あなたの答えをありがとう、私はどのように剃刀のテンプレートhttp://www.liquidmarkup.orgテンプレートエンジンとして使用することができます、ユーザーが私たちは許可するすべての機能を使用することができますが、 –

+0

私はユーザーがレイアウトテンプレートを提供し、のようないくつかの特別なタグを付けて、アップロード後にRenderSectionに置き換える計画を進めています。これは基本的にユーザーが提供する通常のHTMLです(あなたの提案どおり)。私が見る主な問題は、元のアップロードにRazor/C#コードが含まれていないことを確認することです。私はレイアウトはHtml.Raw/Encodedとレンダリングできません。なぜなら、レイアウトとRenderSection呼び出しが必要なためです。私はほとんどのものを捕まえるHTMLバリデーターについて考えましたが、href = "@(some razor/C#)"のようなものは有効なhtmlのように見えます。 – AaronLS

関連する問題