私は/ JavaScriptのテンプレートエンジンを探している、とDoT.jsを選んだ(それは非常にfastだ主な理由)が、ちょうどFreemarkerのと同じように、次の問題ヌル併合(「未定義」安全)とXSSからの保護の両方をサポートするJavaScript HTMLテンプレートがありますか?
ヌル安全/未定義安全/ nullで合体を有していましたVTL、私はfoo.bar.foobarを渡すことができ、foo、foo.bar、およびfoo.bar.foobarが定義されていることを確認することを心配しないでください。
私はおよそ悪い感じ{{ var val='';try{ var=foo.bar.foobar }catch(){} }}{{= val}}
、または
私は良くも悪くも- について感じた場合、私は良いXSS保護をしたいかわからない
{{= typeof foo !== 'undefined'?typeof foo.bar!=='undefined'?typeof foo.bar.foobar!=='undefined'?foo.bar.foobar:'foo.bar.foobar is undefined':'foo.bar is undefined':'foo is undefined'}}
のようなものを避けますであり、高速DoT.jsはDOMを使用しないことになります。 }}オペレータ、私は(作者が何かを逃した場合は何等)世界のすべてのXSSは、検索と置換によって処理されることを快適に感じていないよ
ドキュメント、それは非常に高速ですが、それはまだ(その人気はありませんしかし、ソースは)あなたがちょうどそれらを読むことによって、ほとんどのものを把握することができますので、小さいですが、良いコミュニティを持つことは、JavaScriptのテンプレートライブラリは、これら2つの要求に応答し、まだ速いと考えられている大きなメリット
のですか?
)、HTMLのエスケープは、まともな最初のステップですが、XSSに対する防ぐことはできません。たとえば、 'javascript:doEvil()'をリンクの 'href 'に挿入することは、このデフォルトでは禁止されません。 –