1

nameこのヘルパーがあるとしますが、ユーザーが生成したコンテンツであるため、の値を信頼したくありません。

Handlebars.registerHelper('button', function(name) {
  return new Handlebars.SafeString(
    "<button>" + name + "</button>"
  );
});

ハンドルバーに、ストリングの一部だけを安全にするように指示することはできますか?

例えば。(これは機能しませんが、アイデアは得られます):

Handlebars.registerHelper('button', function(name) {
  return [
    new Handlebars.SafeString("<button>"), 
    name,
    new Handlebars.SafeString("</button>")
  ];
});
4

1 に答える 1

2

一部を安全でないとマークするのではなく、安全でない部分をエスケープして、文字列全体を安全にすることができるようです。

Handlebars.registerHelper('button', function(name) {
  return new Handlebars.SafeString(
    "<button>" + Handlebars.Utils.escapeExpression(name) + "</button>"
  );
});
于 2013-10-18T15:53:11.943 に答える