Question

Nous avons un problème étrange se produisant avec ColdFusion sur BlueDragon.NET. Demander ici à cause de la grande expérience des utilisateurs StackOverflow.

l'intérieur du contenu à POSTé sur serveur BlueDragon.NET se retire, et nous ne sommes pas sûr où dans la pile, il devient supprimé. Ainsi, par exemple, si nous affichons ces données

[CORE]
Lesson_Status=Incomplete
Lesson_Location=comm_13_a02_bs_enus_t17s06v01
score=
time=00:00:56
[Core_Lesson]
<sd ac="" pc="7.0" at="1289834380459" ct="" ><t id="lo8" sc=";;" st="c" /></sd>
<sd ac='' pc='7.0' at='1289834380459' ct='' ><t id='lo8' sc=';;' st='c' /></sd>
<sd ac="" pc="7.0" at="1289834380459" ct="" ><t id="lo8" sc=";;" st="c" /></sd>
<sd ac="" pc="7.0" at="1289834380459" ct="" ><t id="lo8" sc=";;" st="c" /></sd>
<b>hello1</b>
<i>hello2</i>
<table border><td>hello3</td></table>
<sd>hello4</sd>
<sd ac="1">hello5</sd>
<t>hello6</t>
<t />
<t attr="hello8" />
<strong>hello10</strong>
<img>
><>

Ce que nous obtenons est de retour ceci:

[CORE]
Lesson_Status=Incomplete
Lesson_Location=comm_13_a02_bs_enus_t17s06v01
score=
time=00:00:56
[Core_Lesson]



hello1
hello2
hello3
hello4
hello5
hello6


hello10

>

C'est, tout ce qui commence par < et se termine par > obtient dépouillé ou filtrés et ne figure plus dans le champ d'FORM de ColdFusion quand il est affiché.

Notre serveur avec BlueDragon JX ne souffre pas de ce problème.

Si nous contourner en utilisant le champ de FORM par défaut et utiliser ce code, l'étiquette comme contenu apparaît:

<cfscript>
    // get the content string of the raw HTTP headers, will include all POST content as a long querystring
    RAWREQUEST = GetHttpRequestData();
    // split the string on "&" character, each variable should now be separate
    // note that at this point duplicate variables will get clobbered
    RAWFORMFIELDS = ListToArray(RAWREQUEST.content, "&");
    // We're creating a structure like "FORM", but better
    BetterFORM = StructNew();
    // Go over each of the raw form fields, take the key
    // and add it as a key, and decode the value into the value field
    // and trap the whole thing if for some reason garbage gets in there
    for(i=1;i LTE ArrayLen(RAWFORMFIELDS);i = i + 1) {
        temp = ListToArray(RAWFORMFIELDS[i], "=");
        try {
            tempkey = temp[1];
            tempval = URLDecode(temp[2]);                 
            StructInsert(BetterFORM, tempkey, tempval);
        } catch(Any e) {
            tempThisError = "Malformed Data: " & RAWFORMFIELDS[i];
            // Log the value of tempThisError here?         
            // WriteOutput(tempThisError);
        }
    }
</cfscript>
<cfdump var="#BetterFORM#">

Si nous faisons cela, et utiliser la variable créée BetterFORM, il est là, il ne semble pas être un problème avec les demandes filtrées à un autre point de la pile. Je pensais peut-être était URLScan, mais qui ne semble pas être installé. Depuis BD.NET fonctionne sur .NET comme le moteur, peut-être il y a un certain arrangement sanitization qui est utilisé sur toutes les variables en quelque sorte?

suggestions, idées, etc sont les bienvenus sur cette question.

Était-ce utile?

La solution 2

Il est avéré être très banal.

Nous avons eu une balise personnalisée qui ne personnalisé remplacement de chaîne. Sur un serveur, il a été modifié pour remplacer tous les tags PAS. Sur ce serveur, nous utilisions une ancienne version qui a fait. Donc, la faute n'a pas été une différence entre BlueDragon JX et BlueDragon.NET -. Il a commis une erreur de l'équipe de développeur

Autres conseils

Je ne suis pas une instance de BD.NET pratique pour vérifier, mais Adobe ColdFusion a un paramètre dans l'administrateur de bande cf « balises invalides ». C'est ma meilleure estimation. Adobe CF les remplace par « invalidTag », je suppose que BD.Net bandes juste en silence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top