#1
|
|||
|
|||
Исправление ошибки в*движке генерации*НTML для*гипертекстового Фидонета
Mithgol the Webmaster написал(а) к All в Jun 18 03:45:06 по местному времени:
Вечером 27*июня я*с*неудовольствием увидел, как*в*RSS-потоке на*основе моего фидонетовского блога (эхоконференции Ru.Blog.Mithgol) из*сообщения area://Ru.Blog.Mithgol?msgid=2:50/88+5b334ae7 создаётся такой*НTML, в*котором посередине*мусор, и*некоторые строгие читальники (сайт*LiveJournal, например) даже отказываются воспроизводить эту*блогозапись далее*середины. Уделив несколько*часов отладке, я*убедился в*том, что*моему*движку абстрактных синтаксических деревьев, лежащему в*основе генерации кода*НTML из*фидопочты, недоставало рекурсии, поэтому при*определённых обстоятельствах (впервые*так сложившихся за*много*лет работы над*этой*затеей) специальные символы внутри альтернативного*текста (призванного заменить*собою некоторую*картинку в*случае невозможности показать*её) могли*быть незаэкранированы и*порушить стройность окружающего гипертекста. Движок я*починил, но*теперь всем*пользователям, использующим какое*угодно из*моих фидонетовских приложений, имеющих*дело с*гипертекстом, предлагаю пренепременно обновиться по*шагам: 1) Скопировать конфигурацию приложения в*безопасное*место. 2) Стереть приложение. 3) Заново установить по*инструкции (файл*README на*сайте*приложения на*GitНub). 4) Заново накатить ранее*скопированную конфигурацию. Шаги 1 и*4 нужны только в*том случае, когда у*приложения есть*конфигурация, хранящаяся в*файле. (Например, у*Fido2RSS её*нет, а*приложение управляется из*командной*строки.) Прежде всего необходимость обновления касается пользователей приложений Fido2RSS, PhiDo, FidoEdit, fido2twi и*twi2fido. Обновление это я*рекомендую совершить с*разумною быстротою, не*откладывая на*целую*неделю, например. На*то есть две*причины. Первая*причина заключается в*том, что*для*обновления требуется соединение с*Интернетом (а*в*случае с*PhiDo или*FidoEdit ── ещё*и*достаточно хорошее, потому*что скачивать сотни мегабайтов). Между*тем с*1*июля в*действие вступает печально*известный закон*Яровой, во*много-много раз (по*некоторым сведениям ── на*порядки) увеличивающий издержки провайдеров, так*что Сеть*Интернет в*России во*второй половине*года ждёт такое мрачное будущее, которое никто*из*нас, возможно, даже*и*вообразить сейчас не*в*состоянии. Лучше управиться до*этого. Вторая*причина заключается в*том, что*всякая такая ошибка, которая в*код*НTML позволяет при*некоторых обстоятельствах насовать неэкранированные спецсимволы, способна привлечь внимание пытливых личностей, которые путём ряда*экспериментов могут*попробовать создать уязвимость XSS с*её*помощью. Успех этих*экспериментов я*не*исключаю. Что*же*касается читателей моего*блога, то*им поневоле пришлось*увидать, что*сообщение от*00:53:08 28*июля содержит несколько тех микроблогозаписей из*Твиттера, которые в*предшествующем сообщении (11:29:26 27*июля) были*уж однажды выложены в*Фидонете. Такое*дублирование было*совершено для*проверки (и*то проверочное сообщение, в*каком у*меня ошибка проявилась вчера, было*среди продублированных), и*проверка показала, что*ранее*обнаруженная ошибка была*мною устранена. Исходному*коду я*также устроил покрытие дополнительными тестами, исключающими её*появление обратно. * изначально написано в эхоконференцию Ru.Blog.Mithgol * также было отослано в эхоконференцию Ru.FTN.Develop Фидонет будет великим и гипертекстовым! [Ru.Mozilla] http://Mithgol.Ru/ Mithgol the Webmaster. [Братство Нод] [Team А я меняю subj] ... Надпись на зеркале: "Другие не лучше". (Александр Дашевский) --- Эшелону: zipgun налоги TRV ERV rednoise психические военные действия СССР |