通过this question我被告知开始使用cfqueryparam作为我的数据,以防止SQL注入攻击。
如何将它用于表单?现在我一直在浏览Ben Forta的书Vol 1,并将数据传递给我的表单,然后传递给称为CFC的表单处理器。 CFC将它们作为cfargument
接收,然后使用任何type =“x”验证将其注入数据库。
我使用cfqueryparam
,我在查询本身使用它,甚至没有声明cfargument
?
答案 0 :(得分:1)
您仍然可以使用CFC,但请记住,作为函数参数传递的字符串数据仍需要<cfqueryparam>
。这是一个例子:
<cffunction name="saveData" access="public" returntype="void" output="false">
<cfargument name="formVar" type="string" required="true" />
<cfquery name="LOCAL.qSave" datasource="myDSN">
insert into myTable (col1)
values (<cfqueryparam cfsqltype="cf_sql_varchar" value="#ARGUMENTS.formVar#" />)
</cfquery>
</cffunction>
进入的重要习惯是始终使用<cfqueryparam>
,即使在CFC中也是如此。
还有一些info on those edge-cases您可能会发现很难使用<cfqueryparam>
。
希望有所帮助!