Blog di Davide Vernole

do more with less
posts - 94, comments - 4, trackbacks - 0

FreeTextBox - Come usarlo senza urtare la sicurezza di ASP.NET

Questo post è stato spostato nel mio nuovo blog: FreeTextBox - Come usarlo senza urtare la sicurezza di ASP.NET

Chi ha provato ad usare questo controllo, si è forse scontrato con l'impossibilità di salvare dei contenuti HTML inseriti nella fase di editing. Grazie ad alcuni suggerimenti di Raffaele Rialdi e con qualche minuto speso ad analizzare il codice javascript del controllo, sono riuscito a risolvere il problema in questo modo:

Modifica javascipt di FreeTextBox

Aprite il file FreeTextBox-MainScript.js e cercate la funzione FTB_CopyHtmlToHidden. Inserite sopra questa funzione questo codice:

function Encode(content) { return encodeURIComponent(content) }

Quindi modificate la funzione FTB_CopyHtmlToHidden come segue:

function FTB_CopyHtmlToHidden(ftbName) { if (!FTB_Initialized(ftbName)) return; hiddenHtml = FTB_GetHiddenField(ftbName); editor = FTB_GetIFrame(ftbName); if (isIE) { if (FTB_IsHtmlMode(ftbName)) { hiddenHtml.value = Encode(editor.document.body.innerText); } else { hiddenHtml.value = Encode(editor.document.body.innerHTML); } } else { if (FTB_IsHtmlMode(ftbName)) { editorContent = editor.document.body.ownerDocument.createRange(); editorContent.selectNodeContents(editor.document.body); hiddenHtml.value = Encode(editorContent.toString()); } else { hiddenHtml.value = Encode(editor.document.body.innerHTML); } } if (hiddenHtml.value == ' ' || hiddenHtml.value == ' ') { hiddenHtml.value = ''; } }

Nel vostro codice server side utilizzate il metodo HttpUtility.UrlDecode per vedere in chiaro il contenuto della proprietà Text del vostro controllo FreeTextBox. Ricordatevi, inoltre, di rimpostare il valore di questa proprietà con il valore in chiaro altrimenti mostrerete all'utente una stringa di dati difficilmente comprensibile ;-)

Il risultato sembra essere quello voluto, cioè permettere l'inserimento di contenuti HTML utilizzando FreeTextBox.

Questo ovviamente apre le porte ad altre considerazioni sulla sicurezza. Il minimo è grarantire che questo controllo sia usato solo in aree riservate ad utenti "Editor" di fiducia che non useranno questo strumento per inserire codice nocivo alla vostra applicazione.

Print | posted on lunedì 25 ottobre 2004 16:40 |

Powered by:
Powered By Subtext Powered By ASP.NET