
Осенью 2009 г. Olivier C. порадовал сообщество версией 125 среды управления сайтом Seditio. Кроме массы улучшений, включающих долгожданную поддержку юникода, в 125-ю вошел новый плагин Parser Manager, позволяющий управлять BBCodes, используемыми на страницах и в форумах. Именно с этим плагином и связана проблема.
В файл SQL-инъекции вкрались две ошибки в записях, связанных с BBCodes Page 2 и Acronym:
(35, 'Page 2', 0, 1, 130, '/\\[page=([0-9]+)\\]([^\\\\[]*)\\[\\/page\\]/i', NULL, '<a href="page.php?id=\\\\1">\\\\2</a>', NULL, 1),
и
(42, 'Acronym', 0, 1, 200, '/\\[ac=([^\\\\[]*)\\]([^\\\\[]*)\\[\\/ac\\]/i', NULL, '<acronym title="\\\\1">\\\\2</acronym>', NULL, 1),
Лечатся проблемы несложно:
(35, 'Page 2', 0, 1, 130, '/\\[page=([0-9]+)\\]([^\\\\[]*)\\[\\/page\\]/i', NULL, '<a href="page.php?id=$1">$2</a>', NULL, 1),
и
(42, 'Acronym', 0, 1, 200, '/\\[ac=([^\\\\[]*)\\]([^\\\\[]*)\\[\\/ac\\]/i', NULL, '<acronym title="$1">$2</acronym>', NULL, 1),
Вообще, Parser Manager (как, собственно, Unicode и все остальные улучшения) уже давно и более удачно были реализованы в CMF Cotonti. Так, например, Parser Manager в Seditio все еще работает неполноценно: при добавлении или правке нового BBCode левая скобка
<
упорно заменяется на символ
<
, вызывая некорректности парсинга и, соответственно, нарушая верстку сайта.
В феврале 2010 г. вышла версия 126, представляющая собой Security Fix. Указанные ошибки в ней так и не были исправлены. Еще один аргумент в пользу перехода с Seditio на Cotonti?
Заинтересовались? Звоните нам по телефонам +375 (29) 774-35-89 и +375 (44) 774-35-89 в Минске. Мы будем рады помочь Вам в реализации Вашего проекта.