最近Xslateの自動エスケープ機能について考えていたのですが、これは「この機能によって安全性が高まる」というものではなく(結果的にそうでないものより安全ではありますが)、むしろテンプレートエンジンとしてはこれこそ正しい振る舞いなのではないかと思うに至りました。 この「値を渡すと、ソースコードに埋め込む際に適当に加工する」という振る舞いは、SQLとプレースホルダの振る舞いがまさにそうです。SQLに値を埋め込む際、アプリケーションでいちいち値をエスケープするというのは危険であり、避けるべきです。可能であれば常にプレースホルダを使うという方針をとるだけで、エスケープ問題について余計なことを考える必要はなくなります。 テンプレートエンジンについても同じこと。テンプレートに値を埋め込む時は、そのまま渡せばいいのです。これを手動で行わせるのは、プレースホルダに埋め込む値のエスケープの有無をユーザーに