Moh*_*mad 2 coldfusion sql-injection
我使用以下技术来确保来自客户端的任何排序列参数都通过ListFindNoCase()函数:
<cfif ListFindNoCase("date,score", params.order) EQ 0>
<cfset params.order = "date">
</cfif>
Run Code Online (Sandbox Code Playgroud)
这样,任何排序列请求在发送到服务器之前都会对列表值进行审查.然后我将以下代码添加到我的函数中:
<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>
Run Code Online (Sandbox Code Playgroud)
如果表达式与前两种情况不匹配,默认情况下总是将顺序设置为"date DESC",那么这不会使ListCaseNoFind()呈现冗余吗?
我想在删除ListFindNoCase()函数之前确保这是真的!