我可以使用任何其他CF标签来替换CFDUMP吗?

时间:2011-01-08 22:54:39

标签: coldfusion hosting cfdump

在我设计的应用程序中,我将我的一个网页命名为“error.cfm”。我想让它在应用程序出错时显示。所以我将以下代码放在“error.cfm”中:

        An uncaught exception just 'happened' :-(
        <br><br>
        <b><cfoutput>#exception.message#</cfoutput></b><br />
        <cfoutput>#exception.detail#</cfoutput><br /><br />
        <cfif isdefined('exception.cause')>
            <b><cfoutput>#exception.cause.message#</cfoutput></b><br />
            <cfoutput>#exception.cause.detail#</cfoutput>
        </cfif>
        <cfdump var="#exception#">

因此,在托管网站后,我发现此特定页面拒绝加载,而是显示“500内部错误”。然后我向我的托管公司抱怨,我收到了这些细节:


  

尊敬的客户,

     

实际的错误消息如下:

     

安全性:已拒绝请求的模板访问createobject(java)   以下是内部异常消息:拒绝访问(coldfusion.runtime.FunctionPermission createobject(java))

     

错误发生在C:\ inetpub \ vhosts \ plat4ad.com \ httpdocs \ cms \ error.cfm:第10行

     

8:   9:   10:

     

不幸的是,出于安全考虑,我们的服务器上禁用了一些标签和功能。您可以在此处查看完整列表:

     

https://support.dailyrazor.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=293&nav=0,29,76

     

如果您有任何其他问题,请告诉我们。

     

祝福,   支持-GG   DailyRazor支持团队。


现在检查他们在服务器上禁用的标记列表,CFDUMP就是其中之一:

  

在共享的ColdFusion服务器上,您可以访问所有标记和   功能除以下内容外:

     

CF标签:

     
      
  • CFCOLLECTION
  •   
  • CFCONTENT
  •   
  • CFDUMP
  •   
  • CFEXECUTE
  •   
  • CFLOG
  •   
  • CFOBJECT
  •   
  • CFOBJECTCACHE
  •   
  • CFREGISTRY
  •   
     

CF功能:

     
      
  • SetProfileString
  •   
  • 的CreateObject(COM)
  •   
  • 的CreateObject(CORBA)
  •   
  • 的CreateObject(JAVA)
  •   

请问CFDUMP还有其他选择吗?或者有没有人知道任何没有这些限制的ColdFusion托管公司?我很感激你的任何想法。

4 个答案:

答案 0 :(得分:5)

答案 1 :(得分:3)

如果你得到自己的VPS(谷歌:coldfusion VPS),你可以在任何你想要的机器上做。

没有cdump的重点是安全措施。通常所有调试和转储原始数据都在开发服务器上完成,在托管服务器上运行应用程序,对吗? Error.cfm用于隐藏捕获的异常详细信息,例如文件路径,有关已使用库的数据等。

有些方法可以在没有cfdump的情况下显示数据。在您的情况下,我不明白为什么您不能使用普通cfoutput并将异常详细信息写为2行输出。

在您的位置,我会获取fw / 1或Mura CMS的源代码,以了解它们如何处理错误消息,更好地了解更多有经验的人如何处理它然后“浪费”时间重新发明轮子。

答案 2 :(得分:0)

CFDUMP在它被包含在ColdFusion中之前就开始作为自定义标签。

它似乎仍然可以下载:http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&extid=1002037

您可能需要对其进行更改才能在更现代的CF版本中更好地工作(但更好),但它应该超过您所需要的90%。

答案 3 :(得分:0)

我将补充一点,如果您选择“转储”详细信息,您还可以将转储代码包装在查看cgi.REMOTE_ADDR的“if”块中,如果它与您的IP地址匹配,则执行dumpout,否则不会“T

<cfif cgi.REMOTE_ADDR EQ "167.96.177.66">
<!--- execute dump code here --->
</cfif>

警告:YMMV,必须有一个静态IP,必须在那个IP等等。