1

RSS を使用するアプリケーションを作成したいと考えています。RSS フィードのアイテム説明に、画像、リンク、br などの一部のアイテムを HTML として表示できるようにしたいと考えています。車輪の再発明もしたくありません。正しいレベルの HTML だけを取り除くライブラリはありますか?

私が直面している問題は、phpBB から RSS フィードを生成しているため、投稿には既に br および a (リンク) タグが含まれていることです。ただし、ユーザーはスクリプト タグを投稿に貼り付けることができ、適切にエンコードされてページにテキストとして表示されます。

しかし、RSS リーダーで投稿を見ると、投稿内のすべての html が < および > などとしてエンコードされています。これにより、br タグと (less than)script(greaterthan) タグの区別が曖昧になります。どちらも & lt ; そして & gt;

これはもっと簡単なはずだと思いますが、明らかな何かが欠けているだけです...願っています。

4

2 に答える 2

0

質問は完全には明確ではありませんが、通常、出力用にhtmlをクリーンアップしようとする場合は、タグのホワイトリストのみを許可する必要があります。

これは、.netに簡単に適応できるstrip_tagsのjavascript実装です。

http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_strip_tags/

于 2009-02-24T07:40:51.383 に答える
0

私はそれを考え出した。RSS スクリプトを使用していたため、HTML でエンコードされた山かっこが RSS フィードの実際の HTML と「混在」していました。

これは、ソースがphpBBでどのように見えるかです:

<a href="link">link</a>
&lt;script&gt;alert("hack you");&lt;/script&gt;

しかし、私の RSS フィードでは、次のように生成されていました: (エスケープされた html とエスケープされていない html の区別がないことに注意してください)

&lt;a href="link"&gt;link&lt;/a&gt;
&lt;script&gt;alert("hack you");&lt;/script&gt;

rss.php ファイルに変更を加えたので、次のようになりました。

&lt;a href="link"&gt;link&lt;/a&gt;
&amp;lt;script&amp;gt;alert("hack you");&amp;lt;/script&amp;gt;

そうすればちゃんとRSSフィードに表示されました。

ありがとう!

于 2009-02-24T14:53:48.177 に答える