是否需要比声明参数时更多的服务器端表单验证?

时间:2014-06-21 14:00:16

标签: coldfusion coldfusion-9 coldfusion-10

在我处理表单提交的CFC中,我通过声明需要哪些参数以及它们应该是什么类型来在函数的开头进行验证。就这样:

<cfarugment name="forename" type="string" required="true"/>

我目前正在做的是在插入数据库时​​检查值。就这样:

INSERT INTO Person (Forename)
VALUES
(
<cfif structKeyExists(ARGUMENTS, 'Forename') AND Len(Trim(ARGUMENTS.Forename)) GT 0>
<cfqueryparam value="#ARGUMENTS.Forename#" cfsqltype="cf_sql_nvarchar">
<cfelse>
NULL
</cfif>
);

是否有必要检查参数值是否存在及其已被声明为必需值的长度?

1 个答案:

答案 0 :(得分:3)

你还需要

  1. 通过anti-Samy过滤器运行数据,该过滤器将删除所有无效的HTML实体并防范Cross-site Scripting次攻击
  2. 使用Cross-Site Request Forgery token
  3. 验证表单请求是否来自您的服务器

    而这只是我的头脑。