4

私は最近Coldfusion 9を使用しており(主に PHP のバックグラウンド)、ユーザーが送信した入力/文字列を「クリーン/サニタイズ」する方法を見つけようとして頭を悩ませています。

私はそれを HTMLSAFE にしたいと考えています。JavaScript や SQL クエリ インジェクションを排除したいと考えています。CF9 に既に付属しているある種の機能を見落としていることを願っています。

誰かが私を適切な方向に向けることができますか?

4

4 に答える 4

7

さて、SQL インジェクションの場合は、CFQUERYPARAMを使用します。

XSS などの入力のサニタイズに関しては、CFAPPLICATION で ScriptProtect 属性を使用できますが、完全に機能しないと聞いています。必要に応じて、Portcullisまたは同様のサードパーティの CFC を調べて、スクリプト保護を強化することもできます。

于 2011-01-10T20:32:09.663 に答える
6

これはカイルの提案への追加であり、代替の回答ではありませんが、コメントパネルはリンクにとって少しゴミです.

ColdFusion文字列関数を見てください。HTMLCodeFormat、HTMLEditFormat、JSStringFormat、および URLEncodedFormat があります。これらはすべて、フォームから投稿されたコンテンツの操作に役立ちます。

正規表現関数を使用して HTML タグを削除することもできますが、正確な科学ではありません。このColdFusion ベースの regex/html questionは、少し役立つはずです。

Project HoneypotとAkismetの保護を他のツールの中でもフォームに統合するcfformprotectなどを使用して、ボットや既知のスパマーから身を守ることもできます。

于 2011-01-10T20:47:50.273 に答える
1

いくつかのオプションがあります:

  1. 「グローバル スクリプト保護」管理者設定。post および get (つまり、FORM および URL) 変数に対して正規表現を適用して削除し<script/><img/>その他のいくつかのタグを適用します。
  2. isValid () を使用して、変数のデータ型を検証します (これに関する私の詳細な回答を参照してください)。
  3. < cfqueryparam />: SQL バインド パラメータを作成し、渡されたデータ型を検証します。

つまり、本当にHTML をサニタイズしようとしている場合は、ColdFusion がネイティブにアクセスできる Java を使用してください。特に、OWASP AntiSamy Projectを使用します。これは、HTML フラグメントを取得し、それに含まれる値をホワイトリストに登録します。これは、SO や slashdot.org などのサイトが提出物を保護するために使用するのと同じアプローチであり、マークアップ コンテンツを受け入れるためのより安全なアプローチです。

于 2011-01-10T20:39:31.237 に答える