2
我用下面的技術,以確保任何排序列PARAMS來自客戶端經過ListFindNoCase()函數:當用於排序列時,CFSWITCH可以防止SQL注入嗎?
<cfif ListFindNoCase("date,score", params.order) EQ 0>
<cfset params.order = "date">
</cfif>
這樣,任何一個排序列請求被審覈對列表值被送到前服務器。那麼我下面的代碼添加到我的功能:
<cfswitch expression="#params.order#">
<cfcase value="date">
<cfset params.order = "date DESC">
</cfcase>
<cfcase value="score">
<cfset params.order = "score ASC">
</cfcase>
<cfdefaultcase>
<cfset params.order = "date DESC">
</cfdefaultcase>
</cfswitch>
由於默認情況下將始終設置爲「日期DESC」如果表達式沒有前兩種情況相符,不用於呈現ListCaseNoFind()冗餘?
我想確保在我刪除ListFindNoCase()函數之前這是真的!
這也被認爲是「白名單」,這是安全的。 – 2010-12-18 18:26:55