Layer 06

cfapplication e embed un invalidTag, protezione contro i cross site

http://blog.merlinox.com/MrX/blog/index.cfm?id_news=586 Smadonnando come un matto, non riuscivo a capire perchè il CMS del mio blog, che ho fatto io, quando inserivo un post con un tag ==><==> me lo convertiva in . Ho controllato tutto al chè sono arrivato a fare


<cfdump var=”#form.descrizione#”>


ripercorrendo il codice sempre più indietro arrivando all’Application.cfm ma proprio al tag Dopo un attimo di “perdimento” ho cercato online ed ho trovato questa risposta http://livedocs.macromedia.com/coldfusion/7/htmldocs/00000217.htm#1097308:

The ColdFusion MX cross-site scripting protection operation is done when ColdFusion MX processes the application settings at the beginning of a request. Thus, it can process the URL, and Cookie, CGI, and Form variables in a user’s request. By default, it replaces occurrences of the following tag names with the text InvalidTag: object, embed, script, applet, and meta. It allows these names in plain text, replaces the words if they are used as tag names.

Come risolvere il problema? Semplice, si controlla se prima dell’application se c’è il campo “form.descrizione” lo si cripta (encrypt) e dopo l’application (ricontrollando chiaramente l’esistenza) lo si decripta (decrypt). Ecco l’esempio


<cfif isDefined(“form.descrizione”)>
<cfset form.descrizione=encrypt(form.descrizione,”***chiave***”)>
</cfif>
<cfapplication name=”MrXBlog” clientmanagement=”Yes” sessionmanagement=”Yes” sessiontimeout=”#createTimeSpan(0,0,15,0)#”> <cfif isDefined(“form.descrizione”)>
<cfset form.descrizione=decrypt(form.descrizione,”***chiave***”)>
</cfif>


]]>