Специальная ошибка с Coldfusion на Bluedragon.net
-
11-10-2019 - |
Вопрос
У нас есть странная проблема, возникающая с 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 просто снимает его молча.