2011-01-10 5 views
4

私はColdfusion 9最近(主にPHPのバックグラウンド)で作業していましたが、ユーザーが入力した入力/文字列をどのように 'きれいにする/消毒する'かを理解しようとしています。クレンジング文字列/ Coldfusion 9での入力

私はそれをHTMLSAFEにしたいと思っています。いつものjavascriptやSQLクエリインジェクションを排除したいのです。 私は、すでにCF9に付属している何らかの機能を見逃してくれることを願っています。

誰かが正しい方向に向けることができますか?

答えて

6

これはKyleの提案に加えて、別の回答ではなく、コメントパネルがリンクのために少しゴミになっています。

ColdFusion string functionsをご覧ください。 HTMLCodeFormat、HTMLEditFormat、JSStringFormat、URLEncodedFormatがあります。フォームから投稿されたコンテンツの操作に役立つすべてのものがあります。

また、HTMLタグを削除するために正規表現関数を使用することもできますが、正確な科学ではありません。これは少し助けてくださいColdFusion based regex/html question

ボットや既知のスパマーから自分自身を保護することもできます。cfformprotectは、Project HoneypotAkismetの保護をフォームに組み込んでいます。

+0

すべての素晴らしいアイデア! –

+0

良い答え、私はこの1つを受け入れる必要があります、またカイルは最初だった、私はあなたが答えに多くの方法を追加したと感じる。ありがとう、有益な:) – Jakub

+0

完全に公正な、私は少なくとも少し助けてうれしい。 =) –

7

SQLインジェクションでは、CFQUERYPARAMを使用します。

XSSなどの入力をサニタイズする場合は、ScriptProtect attribute in CFAPPLICATIONを使用できますが、完璧に機能しないと聞いていますが、必要に応じてPortcullisなどの第三者CFCを使用してスクリプトの保護を強化できます。

1

あなたは、いくつかのオプションが持っている:

  1. "Global Script Protection" Administrator setting、ポストに対して正規表現を適用し、(つまり、FORMとURL)を取得する変数<script/>を取り除くために、<img/>および他のいくつかのタグ
  2. 使用isValidを()を使用して変数のデータ型を検証します(see my in depth answer on this one)。
  3. < cfqueryparam />これは、SQLバインドパラメータを作成して、渡されたデータ型を検証します。あなたはColdFusionがネイティブにアクセスできるJavaを使用して、HTMLをサニタイズしようとしている本当にをしている場合は、注意

。特に、OWASP AntiSamy Projectを使用します。これにはHTMLフラグメントがあり、ホワイトリストにはどのような値を含めることができます。これは、SOやslashdot.orgのようなサイトが投稿を保護するのに使用するのと同じアプローチであり、マークアップコンテンツを受け入れるより安全なアプローチです。