当前位置:  开发笔记 > 编程语言 > 正文

ColdFusion程序员常见的编程错误要避免吗?

如何解决《ColdFusion程序员常见的编程错误要避免吗?》经验,为你挑选了1个好方法。

本着我关于"常见的编程错误......避免"的其他问题的精神

ColdFusion程序员要避免哪些常见的编程错误?



1> Henry..:

设置上传路径到Web可访问,启用CF的目录!

isStruct()之前isObject()在一系列的期望中,isStruct只捕获struct(cfc组件也从isStruct()返回True)

HtmlEditFormat()显示用户生成的内容(XSS)

忘了在CFC方法上添加output = false

不在里面使用

没有在方法中确定诸如cfquery name或loop index之类的不那么明显的变量

使用时,他们需要的是纯香草HTML

忘了UrlEncodedFormat()用户定义的URL

不消毒内容的情况下使用

信任isDate()太多(任何数字都会返回true)

期望字符串比较区分大小写(IS和EQ运算符不区分大小写)

发送字符串"yes"或"no" SerializeJSON()而不附加空格来保留字符串(否则SerializeJSON()DeserializeJSON()将它们翻译为"true"和"false")

不将单身人士服务放在应用范围内

盲目地创造尽可能多的CFC,就像在JAVA中那样

将复杂的值/对象放入列表中(不能,列表只是一串逗号分隔的值)

编写将数组作为参数并修改该数组的函数,期望该数组将被修改(CFML中的数组按值传递)

盲目地改变access="remote"方法并期望它工作(当远程代理通常更合适时)

当CFML更合适时,在cfscript中使用大量的WriteOutput()

盲目使用的IsDefined()时候StructKeyExists()一般可以更有效地做到

盲目地使用Iif()并且De()不知道它们像Evaluate()那样令人讨厌

更新onApplicationStart()中的一些代码,而不是看到刷新的差异(重新启动应用程序!)

或''在导致打开多个新查询连接之外.99%的情况下,在一个cfquery中执行多个语句以执行多个操作或一起使用UNION数据会更好.

硬编码绝对路径时ExpandPath()通常更好

忘了在DSN中启用Unicode支持(Unicode变为'????')

不升级到最新的JRE和修补程序

滥用客户端范围并炸毁Windows注册表...

使用折旧/过时的功能/功能(即flash形式又名flex 1.x alpha,cftable,Verity全文搜索等......)

传递CFCATCH给函数作为参数类型Struct (CFCATCH行为类似于a Struct,但事实并非如此.只需将其作为类型' Any' 传递).

没有从ColdBox wiki 阅读CFC最佳实践.

以.ASP(X)或.JSP或[插入网络技术]的思维方式购买总是更好..;)

不使用PrecisionEvaluate()并获得所有类型的浮点舍入误差,尤其是在计算金钱时.


@Henry:小错字 - 它是`HTMLEditFormat()`.(XSS漏洞的共性的一个原因是HTML转义函数名称在任何地方都是如此冗长:`htmlspecialchars()`,`Server.HTMLEncode()`,你命名它.通常我为`HTMLEditFormat()创建一个包装函数`并调用`h()`,这非常方便.随着URLEncodedFormat的包装器调用`u()`.)
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有