Coldfusion,安全cfc来自SQL注入攻击

Sno*_*Mac 1 coldfusion sql-injection cfc sql-server-2008

我有一堆外部表单,通过CFC将数据发布到数据库中.

我做的是

  1. 创建具有回发的表单
  2. 在帖子后面创建一个对象并将表单数据映射到对象(cfc)
  3. 使用CFparam对此类型和存储进行验证.范围
  4. 调用自定义方法来扫描字符串以使其免受攻击(似乎运行良好)
  5. 要插入的Cfquery.

我还能做什么或者应该做些什么来保护应用程序免受插入时的SQL攻击?我在select语句中使用CFqueryParam,我是否也应该在insert语句中使用?

简单CFC的示例:

<!--- Instance Veriables ---> 
<cfparam name="THIS.firstPrintedField" type="string" default="#NullString#" />
<cfparam name="THIS.SecondPrintedField" type="string" default="#NullString#" />
<cfparam name="THIS.participantFullName" type="string" default="#NullString#" />
<cfparam name="THIS.studentStatus" type="string" default="#NullString#" />
<cfparam name="THIS.dob" type="date" default="#NullDate#" />
<cfparam name="THIS.readAndUnderStood_Day" type="string" default="#NullString#" />
<cfparam name="THIS.readAndUnderStood_Month" type="string" default="#NullString#" />
<cfparam name="THIS.readAndUnderStood_Year" type="string" default="#NullString#" />
<cfparam name="THIS.agreeToTerms" type="boolean" default="#NullBool#" /> 
<cfparam name="THIS.guardianFirstName" type="string" default="#NullString#" />
<cfparam name="THIS.guardianMiddleName" type="string" default="#NullString#" />
<cfparam name="THIS.guardianLastName" type="string" default="#NullString#" />
<cfparam name="THIS.DateTimeSubmited" type="date" default="#NullDate#" />

<cffunction access="public" name="addRecords" returntype="boolean">
    <cftry> 
        <!--- Sanitize the string properties --->
        <cfset Sanitize() />
        <cfquery datasource="#DSN#" name="qryAddRecords">
            INSERT INTO mod_OutdoorProgram_Waivers
            (
                firstPrintedField
                ,SecondPrintedField
                ,participantFullName
                ,studentStatus
                ,dob
                ,readAndUnderStood_Day
                ,readAndUnderStood_Month
                ,readAndUnderStood_Year
                ,agreeToTerms
                ,guardianFirstName
                ,guardianMiddleName
                ,guardianLastName
            )
            VALUES
            (
                '#THIS.firstPrintedField#'
                ,'#THIS.SecondPrintedField#'
                ,'#THIS.participantFullName#'
                ,'#THIS.studentStatus#'
                ,'#THIS.dob#'
                ,'#THIS.readAndUnderStood_Day#'
                ,'#THIS.readAndUnderStood_Month#'
                ,'#THIS.readAndUnderStood_Year#'
                ,'#THIS.agreeToTerms#'
                ,'#THIS.guardianFirstName#'
                ,'#THIS.guardianMiddleName#'
                ,'#THIS.guardianLastName#'
            )
        </cfquery>
        <cfcatch><cfreturn false /></cfcatch>
    </cftry>
        <cfreturn true />       
</cffunction>
Run Code Online (Sandbox Code Playgroud)

Def*_*ity 16

cfqueryparam应该随处可用,因为它是ColdFusions sql注入漏洞解决方案.