1

PerlWebアプリにCatalystを使用しています。ユーザー入力からHTMLを削除するために受け入れられている方法は何ですか?

現在、私はHTML::FormatTextの使用に傾倒しています。しかし、この一般的なタスクを実行するためにCatalystに組み込まれているユーティリティが見つからないのは奇妙に思えます。私はそれを見つけられませんでしたか?また、入力を削除するためのこれらのモジュールには、5行のコードが必要なようです。私は単純な「deHTMLify()」メソッドを望んでいました。私は自分で転がることはできると思いますが、車輪の再発明をしたくありませんでした。

HTML :: FormFUのようなフォーム検証モジュールがこれを行うと思いますが、その複雑さを避けたいと思っています。私のフォームは短くてシンプルです。この決定は間違っていますか?

私はそれを正しくやっていますか?

4

2 に答える 2

5

HTML :: Scrubberを使用していますが、実際に要素/属性のサブセットを許可したいのです。

于 2010-09-03T03:52:13.193 に答える
5

私はあなたがそれを正しくやっていないと主張します。これを行う正しい方法は、サーバーから送信されたテキストを受け入れることです。次に、データベースから受け取ったすべての値をhtml、またはビューでhtml_entitiesフィルター処理します(おそらくTT)。なぜこれが正しい方法ですか?さて、今HTMLをサポートしたくない場合でも、フィルターをハックして、後でHTMLのサブセットを機能させることができます。これにより、ユーザーは入力を削除するのではなく、入力を(エスケープしただけで)確認できるため、送信した内容や潜在的に価値のある情報を追跡できなくなります。

あなたのやり方はまた、私が不快な出力メカニズム(HTML)についていくつかの仮定をしているようです。なぜ1つの出力フォーマットだけで入力をサニタイズしたいのですか?

于 2010-09-03T04:35:58.977 に答える