Вопрос

У нас есть странная проблема, возникающая с Coldfusion на Bluedragon.net. Запрашивая здесь из -за широкого опыта пользователей StackOverflow.

Теги внутри размещенного контента для сервера BluedRagon.net удаляются, и мы не уверены, где в стеке он удаляется. Так, например, если мы опубликоваем эти данные

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

Что мы получаем, так это следующее:

[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

>

То есть все, что начинается с < и заканчивается > снимается или отфильтровывается и больше не появляется в Coldfusion FORM Область, когда он опубликован.

Наш сервер с Bluedragon JX не страдает от этой проблемы.

Если мы обходимся, используя по умолчанию FORM Область и используйте этот код, появляется контент, похожий на тег:

<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#">

Если мы сделаем это, и используем созданный BetterFORM Переменная, это есть, так что это не является проблемой с профильтрованными запросами в какой -то другой точке стека. Я думал, может быть, это был urlscan, но это, похоже, не установлено. Поскольку Bd.Net работает на .NET в качестве двигателя, возможно, есть некоторые настройки дезинфицирования, которая каким -то образом используется на всех переменных?

Предложения, идеи и т. Д. Приглашаются по этому вопросу.

Это было полезно?

Решение 2

Это оказалось очень обыденным.

У нас был пользовательский тег, который сделал настраиваемую замену строк. На одном сервере он был изменен, чтобы не заменить все теги. На этом сервере мы использовали более старую версию. Таким образом, ошибка не была разницей между Bluedragon jx и bluedragon.net - это была ошибка команды разработчиков.

Другие советы

У меня нет экземпляра Bd.net, чтобы проверить, но Adobe Coldfusion имеет настройку в администраторе CF, чтобы лишить «неверные теги». Это мое лучшее предположение. Adobe CF заменяет их на «Invalidtag», я думаю, что Bd.Net просто снимает его молча.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top