十大Coldfusion编程错误

时间:2010-12-01 14:16:31

标签: coldfusion

  

可能重复:
  Common programming mistakes for ColdFusion programmer to avoid?

这个问题的目的是教育自己,与我一起工作的人,也许还有其他冷血程序员。

对于那些使用Adobe ColdFusion进行编程或已经使用ColdFusion进行编程的人,您所犯的十大错误是什么,或者永远不应该犯错。

我的意思是给我最坏的情况,绝不能做,应该避免什么。

有时候,现在我想要展示“做什么”,这有助于展示“不该做什么”

或者分享一些编码噩梦......

带上它!

8 个答案:

答案 0 :(得分:13)

  1. 编程就好像你是唯一一个会使用代码的人
  2. 没有关于复杂或奇怪的代码部分的评论
  3. 不必要地使用井号(#)
  4. 在适当的时候不使用cfbreak来突破循环
  5. 使用CustomTags作为“业务逻辑”,当CFC更合适时
  6. 不在应用程序或服务器范围内缓存单例CFC
  7. 在ColdFusion中分页大型记录集,当分页应该在SQL中完成时
  8. 未在CFC和
  9. 中的每个功能上设置output =“false”
  10. 当简单记录集(查询对象)执行得更好并简化时,在高流量站点上创建对象数组
  11. 在视图层中放置太多逻辑

答案 1 :(得分:7)

首发套装:

  • 范围局部变量
  • 使用CFQUERYPARAM
  • 不要在每次请求时重新加载应用程序范围
  • 不要将应用程序范围用于请求或会话特定数据
  • 不要在Cookie中存储敏感数据(用户ID,密码,用户名等)。使用会话或客户端范围。
  • 将数据库用于客户端变量
  • 缓存经常使用或缓慢变化的查询
  • 如果是HTML / CSS /等。不是动态的,存储或缓存生成的代码
  • 让您的数据库尽可能多地进行数据处理
  • 永远不会在生产箱上启用强大的错误
  • Alsays,总是有不止一个环境;不要在生产箱上编码。

答案 2 :(得分:4)

要添加到Ben上面的好列表 - 关闭生产盒上的调试。

答案 3 :(得分:3)

其他人已经触及了这一点,但是对于任何可能偶然发现这种情况的cf新手来说,它更详细。 始终使用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)

答案 4 :(得分:2)

什么不该做?这是我能立刻想到的3个:

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

    &lt; cfset#url.value#= url.dontdothis&gt; &lt;!---?value = application.dsn任何人? ---&GT;

答案 5 :(得分:2)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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