Pregunta

Tenemos un problema extraño que ocurre con ColdFusion en BlueDragon.NET. Pidiendo aquí debido a la amplia experiencia de los usuarios stackoverflow.

Etiquetas publicado contenido en el interior a cabo servidor BlueDragon.NET se retira, y no estamos seguros de dónde en la pila se está haciendo eliminado. Así por ejemplo, si nos fijamos estos datos

[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>
><>

Lo que se obtiene es la siguiente:

[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

>

Es decir, cualquier cosa que empieza con < y termina con > está siendo despojados o filtran y no parece más largo alcance en FORM de ColdFusion cuando es publicado.

Nuestro servidor con BlueDragon JX no sufre este problema.

Si bypass mediante el alcance FORM defecto y utilizar este código, la etiqueta como aparece el contenido:

<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 hacemos esto, y usamos la variable BetterFORM creado, que está ahí, por lo que no parece ser un problema con las solicitudes que se filtran en algún otro punto de la pila. Estaba pensando que tal vez era URLScan, pero eso no parece ser instalado. Desde BD.NET se ejecuta en .NET como el motor, tal vez hay un cierto ajuste de desinfección que se utiliza en todas las variables de alguna manera?

sugerencias, ideas, etc son bienvenidos en este tema.

¿Fue útil?

Solución 2

resultó ser muy convencionales.

tenía una etiqueta personalizada que no personalizarse reemplazo de cadena. En un servidor, que fue modificado para NO reemplazar todas las etiquetas. En este servidor, que estábamos usando una versión más antigua que lo hizo. Por lo que el fallo no había una diferencia entre BlueDragon JX y BlueDragon.NET -. Fue un error equipo de desarrolladores

Otros consejos

No tengo una instancia BD.NET práctico para comprobar, pero Adobe ColdFusion tiene una configuración en el administrador cf para despojar a "etiquetas" no válidos. Esa es mi mejor conjetura. Adobe CF los reemplaza por "invalidTag", mi suposición es que BD.Net simplemente tiras en silencio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top