Coldfusion: abilitare robust debug

Molti shared hosting in Coldfusion decidono di disabilitare il “robust debug” (Robust Exception Information) perchè potenzialmente pubblicare tutte quelle informazioni può essere molto pericoloso: qualche cracker – per definizione malintenzionato – potrebbe utilizzarle per bucare il server.

Programmare in Coldfusion (come altro linguaggio) senza un adeguato debug e supporto nel tracciamento degli errori è un vero inferno: come fare per aggirare l’ostacolo? Utilizziamo una vecchia tecnica che si usa per tracciare gli errori via email: il tag <cferror>, che ci consentirà di abilitare il “robust debug” o quasi.

La prima cosa da fare è inserirlo nell’Application.cfm in questo modo:

<cferror type="EXCEPTION" template="error.cfm">

Quindi non vi resta che preparare la pagina error.cfm inserendovi dentro la pubblicazione delle informazioni che vi servono, in modo particolare della variabile #error# che rappresenta una struttura multilivello con all’interno il dettaglio dell’errore, stack trace compreso.

Io solitamente utilizzo il tag <cfdump> per pubblicare le strutture esplose in modo completo: è un trick veloce che pubblica in modo perfetto ciò di cui abbiano necessità. La mia pagina error.cfm è fatta così:

<cfdump var="#error#">
<!--- (if exists) --->
<cfdump var="#form#">
<cfdump var="#url#">
<cfdump var="#session#">
<cfdump var="#cgi#">

Attenzione ad una cosa: non è bene che in caso di errore tutti vedano questa pagina, per le ragioni di cui alla premessa. Conviene sempre inserire questo tracking d’errore all’interno di un if, mentre nel ramo else potete creare una omologa pagina, che però mandi le info di errore alla vostra email. Ecco un esempio:

<cfif cgi.remoteAddr is "***.***.***.***" or url.debug is "pleaseGimmeTheDebugInfoThanks">
<cferror type="EXCEPTION" template="error.cfm">
<cfelse>
<cferror type="EXCEPTION" template="errorEmail.cfm">
</cfif>

Io continuo a sostenere che è un vero peccato che – soprattutto in Italia – Coldfusion non abbia avuto l’onore di cui merita!

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *