2010-12-01 30 views
3

可能重复:
Common programming mistakes for ColdFusion programmer to avoid?十大ColdFusion的编程错误

这个问题的目的是为了教育自己,我一起工作的人,也许还有其他的ColdFusion程序员那里。

对于那些在Adobe ColdFusion中编程或者在ColdFusion中编程的人,您所犯的十大错误中有哪些或者哪些不该生气即

我的意思是给我最糟糕的最坏的,绝不能做什么,要避免什么。

有时,它帮助显示“做什么”现在好了,我想显示“不要做什么”

或许大家分享一些您的编码恶梦...

把它!

+0

没有正确确定变量的范围 – 2010-12-01 14:56:53

+0

在查询中不使用cfqueryparam – 2010-12-01 14:57:19

+4

由于这不是一个特定的问题,(没有“正确的”答案),您应该将其设为Community Wiki。 – 2010-12-01 15:55:03

回答

13
  1. 编程,就好像你只是谁将会在代码不断努力
  2. 有关的代码
  3. 使用英镑符号复杂或奇怪的部分没有评论的一个(#)不必要地
  4. 不使用cfbreak到跳出循环的时适当
  5. 使用CustomTags为“业务逻辑”,当CFC会更合适
  6. 不缓存单氯氟烃在应用程序或服务器范围
  7. ColdFusion中,分页大的记录时,分页,应在SQL进行
  8. 没有设置输出氟氯化碳=“假”和
  9. 创建阵列中的每个cffunction在高流量的网站对象时,一个简单的记录集(查询对象)会表现得更好,并简化
  10. 放入太多的逻辑视图层
7

起动器设置:

  • 范围的局部变量
  • 使用CFQUERYPARAM
  • 不要重新加载在每次请求
  • 不要使用应用范围的请求或会话特定数据
  • 应用范围
  • 不要在cookie中存储敏感数据(用户名,密码,用户名等)。使用会话或客户端范围。
  • 使用数据库客户端变量
  • 缓存常用或缓慢变化的查询
  • 如果HTML/CSS /等。不是动态的,存储或缓存生成的代码
  • 让你的DB做尽可能多的数据处理尽可能
  • ,永不离开生产箱启用强大的错误
  • Alsays,总是比一个环境更;不要在生产箱上编码。
4

要通过Ben添加到上面的漂亮列表中 - 关闭生产框中的调试。

2

什么不能做呃?下面是我可以直接想到的3:

  1. 如果使用try/catch,不要让catch没有做任何事情,特别是在大块代码上。
  2. 请勿使用评估 - 99.5%的时间不是必需的。
  3. 不要使用动态变量,特别是当它们由URL范围设置时。

    < cfset#url.value#= url.dontdothis > <!---?value = application.dsn任何人?--- >

3

其他人对这个感动,但它承担着把在那里的任何cf newb的更多细节谁可能会偶然发现这一点。 始终使用cfqueryparam!

不要这样做:

<cfquery name="getSome" datasource="myDB"> 
    select * from users 
    where userID = '#url.userID#' 
</cfquery> 

相反,这样做:

<cfquery name="getSome" datasource="myDB"> 
    select * from users 
    where userID = <cfqueryparam value="#url.userID#" cfsqltype="CF_SQL_INTEGER"> 
</cfquery> 

Here is a tool (cfqueryparam scanner),这将有助于你找到,如果你有任何疑问脆弱。

另一件事是,如果你是一个新手,而且你不确定你的应用是否安全,那么试试免费的Hack My CF工具,它帮了我很大的忙。 (不以任何方式附属于本网站,fyi)

0

我刚刚为我公司编写了一套新的编码标准,涵盖了很多这种类型的东西。我稍后会在这里和/或我的网站上发布信息。

0

在Windows服务器上,保留默认客户端变量数据源。它会垃圾你的注册表。

2

不要将密码存储为纯文本。