Может ли CFSWITCH предотвратить внедрение SQL при использовании для столбца сортировки? - PullRequest
2 голосов
/ 18 декабря 2010

Я использую следующий метод, чтобы гарантировать, что любые параметры столбца сортировки, поступающие от клиента, проходят через функцию 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 ()!

1 Ответ

5 голосов
/ 18 декабря 2010

Конечно, это безопасно. Вы жестко программируете порядок, поэтому нет никаких шансов на то, что посторонний SQL может быть введен.

...