2017-06-30 9 views
0

私が使用しているAPIは、<a />というリンクを持つタグを含む文字列を返します。私がPugでこれをレンダリングすると、ハイパーリンクはプレーンテキストとしてレンダリングされ、解除できません。Pug.js - 文字列内の<a>タグをリンクに変換する

テキスト内のリンクを実際のリンクに変換する方法はありますか?

例文字列:Major disruption through Rugby. More details can be found in <A href="http://nationalrail.co.uk/service_disruptions/166412.aspx">Latest Travel News.</A>

答えて

1

これは実際にあなたがテンプレートでこのテキストを含める方法によって異なりますが、私はあなたがescaped String interpolation渡って来ていると思います。何が起こるのは、あなたがp= [input variable...]をしたときにPugが入力を自動的に 'サニタイズする'ということです。このサニタイズステップには、HTMLの意味で<>文字を「機能しない」文字にすることも含まれます。これにより、さまざまな攻撃が防止されます。特に、実際のスクリプトコードがページに挿入されている可能性があります。

ただし、このAPI /データソースを完全に信頼する場合は、入力文字列をそのまま残すこともできます。unescapedこのオプションがどれくらい安全かは、そのAPIをどれだけ保有しているか、どれだけ信頼するかによって異なります。

入力をエスケープしない他のオプションには、<a ...>タグの手動正規表現検索やその正規表現の一致を一部のJSコードとの実際のリンクに変換することが含まれます。

+1

ああ、それは完璧です!ありがとうございました。 –

関連する問題