2016-07-22 6 views
0

私はnode.jsのようなアプリをチャットしています。私はテンプレートに似たものを作る必要があります。だから誰でも後でレンダリングされる独自のテンプレートを作ることができます。node.jsプロセス内のjsRenderのセキュリティ上の懸念

だから私は、次の2つの方法があります:私は通常の文字列で行くことができ

  1. を私はjsRenderを使用して、ちょうど、ユーザーが無効になってjsRenderテンプレートを指定できるようにすることができます実際の値

  2. で事前定義されたパラメータを交換し、交換してくださいコード実行。

それはより柔軟ですが、私は、ユーザーがサーバー側でjsRenderによって実行され、それがデータを漏らすかもしれないいくつかの邪悪なJavaScriptコードを指定するかもしれないという心配と私はより多くの第二のアプローチを好みます。

したがって、jsRenderは、node.jsサーバー上で動作し、ユーザーがサーバー側で実行される独自のテンプレートを指定することを許可していますか?

+0

htmlテンプレートのようなどのようなテンプレートですか? –

+0

これは、ユーザが指定したプロパティを含むjsonリクエストによく似ています –

答えて

2

JsRenderは、ユーザー定義テンプレートで任意のコードを実行できないように設計されています。

はもちろん、偽(http://www.jsviews.com/#settings/allowcodehttp://www.jsviews.com/#[email protected]を参照してください)そのデフォルト値でallowCode設定オプションを残しておく必要があります。

ユーザーはテンプレートに豊富なテンプレート式を含めることができますが、テンプレートスコープ外の変数にアクセスする(または任意のメソッドを実行する)コードを挿入することはできません。コンテキストデータ/モデルにのみアクセスでき、標準演算子を使用し、提供者が(提供者が)提供する任意のヘルパーメソッドと変数を使用することができます。

+0

こんにちはBoris、あなたの答えは非常に便利です。それとJsRender自体のためにありがとう! –

+0

うれしかったです... – BorisMoore

関連する問題