标签: coldfusion

使用Maven进行Coldfusion项目

我必须处理那些非常丑陋和大量的ColdFusion代码,直到今天,这些代码都是通过生产服务器上的直接修改来维护的(不要问).我设法从欺骗和备份中清理它并将其放入Subversion,现在我需要选择一个make系统才能将其置于持续构建(TeamCity)和预定版本中.令我惊讶的是,我只发现了一篇关于如何用Maven改造CF项目的博客文章,所以问题是 - 有没有人有成功使用Maven在CF上的经验以及一般人用来管理大型CF项目的经验?您的建议,提示和链接将非常受欢迎因为我不想开始宗教战争 - Maven几乎是公司标准(vs Ant)

coldfusion continuous-integration maven-2

9
推荐指数
1
解决办法
3334
查看次数

NetBeans作为ColdFusion脚本的编辑器?

是否有任何已知的NetBeans插件用于ColdFusion脚本的编辑,格式化和颜色编码?

coldfusion plugins netbeans

9
推荐指数
1
解决办法
5953
查看次数

如何使用ColdFusion阻止SQL注入

在ColdFusion方面,如何防止SQL注入?我对语言/框架很陌生.

这是我的示例查询.

<cfquery name="rsRecord" datasource="DataSource">
    SELECT * FROM Table
    WHERE id = #url.id#
</cfquery>
Run Code Online (Sandbox Code Playgroud)

我认为传递url.id风险.

sql security coldfusion sql-injection

9
推荐指数
2
解决办法
2515
查看次数

Coldfusion错误和IIS7.5错误页面

为了允许ColdFusion显示其错误而不仅仅是服务器错误(代码500),我已根据本网站的一些调查结果添加到web.config中.

问题看起来已经解决但......

当我访问IIS中的一个不存在的目录时,它返回一个没有任何状态代码的"空白"页面.如果我将它从passthrough设置回auto,IIS将再次获取错误页面,并且不再显示ColdFusion错误.

有人有解决方案吗?我做了一些研究并"怀疑"JWildcardhandler可能是问题,但我找不到解决方案.

非常感激!

coldfusion iis-7.5

9
推荐指数
1
解决办法
8163
查看次数

如何使用脚本使用access ="remote"属性定义ColdFusion函数?

目标是允许使用脚本而不是CFML标记定义.cfm或.cfc的所有函数.

我想改变这个:

<cffunction name="foo" access="remote">
    <cfscript>
        ....
    </cfscript>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

进入这样的事情:

<cfscript>
    function remote foo() {
        ....
    }
</cfscript>
Run Code Online (Sandbox Code Playgroud)

或其他东西,只要它可以在打开和关闭cfscript标签内完成.

coldfusion

9
推荐指数
2
解决办法
3287
查看次数

为什么ListAppend是非破坏性的,而ArrayAppend和StructInsert都具有破坏性?

我花了差不多一个小时试图找出一个总是返回一个空字符串的列表的问题.我正在使用ListAppend就像使用ArrayAppend或StructInsert,但显然ListAppend的工作方式不同.如果有的话,ListAppend的工作原理与其他一切有什么不同?

<cfset ListAppend(list, item)>
Run Code Online (Sandbox Code Playgroud)

list =''

<cfset ArrayAppend(array, item)>
Run Code Online (Sandbox Code Playgroud)

array [1] = item

<cfset StructInsert(struct, 'key', item)>
Run Code Online (Sandbox Code Playgroud)

struct.key = item

coldfusion

9
推荐指数
2
解决办法
393
查看次数

ColdFusion:尝试在CFScript中查询数据库

我的老板要我使用cfscript而不是标签进行数据库交互.有人知道任何好的教程吗?我购买了Adobe ColdFusion应用程序开发书,第2卷.但它在脚本编写方面没有太多内容.我做谷歌并找到了这个网站,但它没有解释太多.

有没有人知道有关访问CFScript数据库的任何好教程?

基本上我必须将以下内容转换为使用CFScript:

<cfquery name="drafts" datasource="ICEchat">
    SELECT * from Messages where IsTemp=1 and LinkA=#FORM.LinkA# and LinkB=#FORM.LinkA#
</cfquery>
<cfif drafts.recordcount GT '0'>
    <cfquery name="Attachments" datasource="ICEchat">
        SELECT * FROM Attachments where id=2
    </cfquery>
    { Message:"<cfoutput query="drafts">#Message#</cfoutput>", Attachments:[<cfoutput query="attachments">
        "#url#"<cfif attachments.currentRow LT attachments.recordcount>,</cfif>
    </cfoutput>]}
<cfelse>
    <cfquery name="addrecord" datasource="ICEchat">
        INSERT INTO Messages 
        VALUES(1,1,' ',1)
    </cfquery>
    { Message:"NA", Attachments:[]}
</cfif>
Run Code Online (Sandbox Code Playgroud)

coldfusion

9
推荐指数
2
解决办法
2万
查看次数

这是SQL注入攻击的一个例子吗?

我为客户开发了一个网站,他们将在线发布商品图片.网址是www.domiainname.com/item-details.cfm?sku=125.有人试图浏览www.domiainname.com/item-details.cfm?sku=125%20and%203=3我收到通知的产生和错误.

我还收到了错误报告:

item-details.cfm?sku=1291+or+1=@@version-- 
item-details.cfm?sku=1291'+or+1=@@version 
item-details.cfm?sku=1291+or+1=@@version
Run Code Online (Sandbox Code Playgroud)

最后三个例子肯定是有人试图进入系统,对吧?

如果我们将此转换为存储过程,是否会降低或消除插入攻击的风险?

sql coldfusion sql-injection

9
推荐指数
1
解决办法
4929
查看次数

java.lang.Runtime是否报告整个Coldfusion服务器或仅一页的内存使用情况?

我正在使用以下ColdFusion代码计算已用内存.

 runtime = CreateObject("java", "java.lang.Runtime").getRuntime();
Run Code Online (Sandbox Code Playgroud)

然后在循环中我执行以下操作来计算已用内存.

var usedGB = (runtime.totalMemory() - runtime.freeMemory()) / 1024.^3; // bytes -> KB -> MB -> GB
Run Code Online (Sandbox Code Playgroud)

这告诉我从我的页面开始就使用了近200 MB.这是CF服务器使用了多少,或者这只是我页面的一些开销?

java memory coldfusion

9
推荐指数
1
解决办法
262
查看次数

嵌套的cfloops记录少于外部循环导致"数组索引超出范围"错误

我很好奇为什么会这样.我现在已经遇到过两次了,经过大量的谷歌搜索后,我找不到任何我理解的理由.它的要点:

查询1:selectContent(6条记录;没有空格/空值等)

查询2:selectPricing(5条记录;没有空格/空值等)

输出:

<cfloop query="selectContent">
    <section>
        #selectContent.h2#
        <cfif selectContent.id eq 3>
            <cfloop query="selectPricing" group="groupCol">
                <table class="pricing">
                <thead>
                    <tr>
                        <th>#description#</th>
                        <th>Price</th>
                    </tr>
                </thead>
                <tbody>
                    <cfloop>
                    <tr>
                        <td>#selectPricing.description#</td>
                        <td>#selectPricing.price#</td>
                    </tr>
                    </cfloop>
                </tbody>
                </table>
            </cfloop>
        </cfif>
        #selectContent.content#
    </section>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

这将产生以下错误:数组索引超出范围:5

仅当第二个查询的记录少于第一个查询时才会出现此错误.基本上感觉就像第一个cfloop从第二个接管循环迭代,这导致了问题,但也只有当你有第三个分组cfloop.整个内部cfloop运行,就像在源中一样.

我想出了两种方法来解决这个问题:

  • 使用cfoutput/group执行此操作,但这相对较难,因为它意味着从页面的其他部分大量关闭cfoutputs.
  • 如果currentRow与recordcount匹配,则在第三个cfloop上粘贴cfbreak.

那么,有两个问题:

  • 为什么会发生这种情况?

  • 我是否应该在这里使用一种完全不同的方法(谷歌/因此没有找到其他人这个问题的事实似乎肯定暗示......)?

编辑 我已根据Adam Cameron的反馈将此作为Coldfusion错误提交.Bug#3820049

coldfusion coldfusion-10 cfloop

9
推荐指数
1
解决办法
552
查看次数