2

テーブル名と列名が別の ColdFusion クエリから渡される一連の JOIN ステートメントを動的に作成する必要があります。文字列値をステートメントに渡すとき、CFQUERYPARAM はそれを一重引用符で囲みます。これが CFQUERYPARAM のポイントの一部です。これが SQL ステートメントを壊すことを考えると、この場合 CFQUERYPARAM を使用せず、代わりに着信クエリがクレンジングされることを保証することは許容されますか、または CFQUERYPARAM を使用できるようにする方法はありますか? (Fusebox で回路/ヒューズのアクセス許可を使用して、これらのコードをロックできます。)

ありがとう。

4

2 に答える 2

5

cfqueryparam一重引用符を追加しません。バインド変数を使用します。

私は、「一連の JOIN ステートメントを動的に構築する」というステートメントを即座に疑っています。動的に参加している場合、必ずしも適切に処理しているとは思えません。

ただし、テーブル/列名の場合、完全に完全にサニタイズするcfqueryparamと、動作せず、cf 変数が必要な場合は、はい、CF 変数を直接使用できます。

rereplacenocase(table_name,'[^a-z_]','','all')注: 安全にサニタイズするために、az とアンダースコア以外のすべてを削除するために使用できます。

于 2009-03-24T14:08:00.500 に答える