を使用して動的SQL クエリCFLoop
を作成しています。私はCFSaveContent
変数を反復処理してクエリを作成するために使用しており、それをCFQuery
usingで実行していPreserveSingleQuotes
ます。それは問題なく機能しますが、この方法の問題は、使用できないCFQueryParam
ため、クエリがインジェクションに対して脆弱であることです。この問題の回避策があるかどうか疑問に思っていましたか?
アップデート:
<cfsavecontent variable="sqlstring">
SELECT id
,(CASE
<cfloop query="qGetRules">
WHEN val1 >=#qGetRules.equ# AND val2 >#arguments.leve# THEN 1
</cfloop>
ELSE 0
END) AS criteria
FROM mt4_users
</cfsavecontent>
<cfquery name="qGetEquity" datasource="mydatasource">
#PreserveSingleQuotes(variables.sqlstring)#
</cfquery>
したがって、この例では、クラッシュするためcfqueryparam
、 for を使用できません。arguments.leve
PreserveSingleQuotes