2
정렬 열에 CFSWITCH를 사용하면 SQL 주입을 방지 할 수 있습니까?
다음 기술을 사용하여 클라이언트에서 오는 정렬 열 매개 변수가 ListFindNoCase() 함수를 통과하는지 확인합니다.<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() 함수를 제거하기 전에 이것이 사실인지 확인하고 싶었습니다!
이것은 또한 "white-listing"으로 간주되어 안전합니다. –