Инстант и безопасность сайта

+5
1.8K
Итак. Как говорил кто то на сайте, мы совсем не уделяем внимания безопасности сайтов на InstantCMS.
Сейчас будут громкие возгласы, уделяем уделаем. Недавно получил предложение из рассылки на instantcms.ru поделится ссылкой на свой сайт, созданный на цмс инстант, типа для каталога. Так вот пока безопасной версии инстанта не будет, не бывать моему сайту в каталоге инстанта.

Укажу как минимум на 2 косяка в безопасности, которые запросто могут положить сайт.

Косяк намбер 1:
Иллюстрация
На скрине ниже видно как я складываю архивы в папки сайта 22zona.ru/. Эту возможность мне "дарит" визуальный редактор FCK. При этом складывать файлы могу в любую папку в папке аплоад, папка имаджес тоже доступна, если нажать на кнопочку "добавить картинку", а там посмотреть на сервере.
А хостеры жуть как не любят когда на сайте складируют вирусы (на народе за это закрыли один из моих сайтов).
"А мы позволяем добавлять статьи только проверенным людям" — скажете вы. FCK редактор используется при редактировании настроек клуба. Грузить на чужой сайт вирусы можно и оттуда. К сожалению интеграция инстант и FCK не проработана тщательно, о чем я писал здесь instantcms.ru/forum/43/thread2000-1.html и закрыть эту дыру пока не получается никак.
Вывод: Либо менять редактор, либо позволять грузить файлы только в одну папку — дабы можно было их быстро проверять на вирусность. Лучший вариант — добавить в написание статьи бб кода для юзеров, а FCK оставить для модеров и выше.

Косяк намбер 2:
Опять же изза виз редактора. Так как панели редактора не поддаются настройке, опять таки написано тут instantcms.ru/forum/43/thread2000-1.html то есть такая чудесная кнопочка "источник", позволяющая вставить хтмл код в страницу любому, кто может писать статьи. Любой хтмл код, в том числе и опасный <iframe>. Чем это может грозить читаем тут yandex.ru/yandsearch?clid=9582&text=%D0%B2%D0%B8%D1%80%D1%83%D1%81+iframe.

Глядишь сейчас дело по внедрению бб кодов сдвинется с мертвой точки...

P.S. Версия инстанта 2.0 будет одной из лучших цмс не только среди бесплатных, но и платных. I like instant cms.
+1
12 лет назад #
Баги, как можно заметить связаны в первую очередь с использованием FCKeditor, это не дырки в самом скрипте, данные казусы можно решить почитав как правильно настроить данный редактор для обеспечения безопасности всей системы, и как вариант перейти на другой визуальный редактор например TinyMC или Вайсинг ПРО (коммерческий проект). Думаю что может быть ко второй версии движка будет возможность использовать данные виз. редакторы по усмотрению владельцев сайтов.
+1
Zau4man Zau4man 12 лет назад #
Согласен, дырки не в скрипте. Но дырки в редакторе, который является, по сути, частью cms.
maxisoft:
как правильно настроить данный редактор
не настраивается он - см тут http://instantcms.ru/forum/43/thread2000-1.html . И я уверен, что косяк в том, что cms неверно интерпретирует строку toolbar=&#8217;Basic&#8217;, или еще какую, пусть гуру меня поправят.
maxisoft:
перейти на другой визуальный редактор например TinyMC
это вряд ли смогут сделать сами 99% пользователей cms instant.
+1
12 лет назад #
Ну давай разбираться вместе с твоей проблемой все настраивается вся проблема в том что ты не в том месте искал решение проблемы с редактором. Во первых разберемся как вставляется редактор в контент, думаю говорить не стоит об этом что он оформлен как Plugin соответственно давай прокурим данный код плагина. Вот тут есть одна строка которая объясняет такое поведение данного редактора. $oFCKeditor-&gt;ToolbarSet = &rsquo;Admin&rsquo;; Данная строка независимо от того какой стиль стоит в div задает редактору меню стиль Админ. если ее заменить на Basic тогда и меню будет Basic. Вот и решение проблемы с редактором. По вопросу замены согласен поэтому пишу плагин для работы с TinyMC ибо он мне ближе по работе чем FCK.
+1
Zau4man Zau4man 12 лет назад #
Щас снес эту строку - ноль эмоций, везде панелька админ. Прописал
Код PHP:
$oFCKeditor->ToolbarSet = 'Basic';
стала басик. То есть для всех форм, где используется FCK можно задать только один вид панели?
+1
Zau4man Zau4man 12 лет назад #
стало не басик а дефулт... хм...
+1
12 лет назад #
а не пробывал включить следующее понятие что если строки нет то редактор поидет по дефолту! rofl и скорее всего нада прописать только следующее : $oFCKeditor->ToolbarSet = "Basic";
+1
Zau4man Zau4man 12 лет назад #
Прописал. Во всех стало басик. получается
для всех форм, где используется FCK можно задать только один вид панели
+1
12 лет назад #
Да это основная бяка при использовании плагина, в принципе думаю что его можно доработать до нормального указания типов панелей.
+1
Zau4man Zau4man 12 лет назад #
решил все проблемы так: убрал в виз редакторе кнопки источник и все "лишние". А при загрузке спрятал посмотреть на сервере... для начала потянет...

А прикрутить бб кода для написания статей сложно?
+1
InstantCMS InstantCMS 12 лет назад #
сделаем чуть позже
+1
Zau4man Zau4man 12 лет назад #
Все таки разрешить юзерам писать статьи бб-кодами - самый безопасный вариант. И эти же бб кода использовать при редактировании настроек клуба.
+1
Zau4man Zau4man 12 лет назад #
В общем поработал еще над файлом плагин, который прикручивает к цмске виз редактор.
вместо строки
Код PHP:
$oFCKeditor->ToolbarSet = 'Admin';
написал
Код PHP:
$group_id = $_SESSION['user']['group_id'];
        if ($group_id=="2")
        {
        $oFCKeditor->ToolbarSet = 'Admin';
        }
        else
        {
        $oFCKeditor->ToolbarSet = 'User';
        };
. Теперь при написании статьи или редактировании блога для админов доступна панелька Admin а всем остальным User. В принципе можно таким образом сделать каждой группе свою панельку. [не пойму почему в цмске это не реализовано сразу, хотя бы таким же способом.]
А панелька User настраивается в файле fckconfig.js аналогично панельке Admin. Выкинул "лишние" кнопки источник и еще парочку.
В общем и себя не обидел, и юзеров. ))
0
seyfer seyfer 1 лет назад #
Представленные выше уязвимости легко устранить. Можно убрать кнопку источник, проблема с iframe решена.

Далее применяем метод от Евгения выше к файлу плагина.

Убираем загрузку Флеш для пользователя, или не убираем, по моему не нужна она.
Кнопка "посмотреть на сервере" есть в диалоговых окнах Картинок, Флеш, Ссылка, убрать ее конфигурацией нельзя, но есть html диалоговых окон. :)

Заходим в папку wysiwyg->fckeditor
Ищем в подпапках папку dialog, в ней файлы. Для картинок например нам нужен fck_image.html

Ищем в нем по слову browse где происходит отображение кнопки, комментируем строки и все, кнопка пропадет.
0
seyfer seyfer 1 лет назад #
И еще кнопки некоторые имеют подпапки в папке dialog. В папке лежит соответствующий js.

На примере картинок, в этом js надо найти строку // Show/Hide the "Browse Server" button.
И оставить ниже параметры 'none'.

Аналогично для других.

Еще от автора

Слайд-панель
Компонент добавит на сайт возможность вывести вверху сайта небольшую "выезжающую" панель, в которой можно анонсировать приложение сайта.
Выбор страницы в пагинации
Делюсь шаблоном пагинации, в котором добавлена возможность выбрать страницу в пагинации, когда страниц очень много.
Ztemplate - расширяем опции виджета Элементы шаблона
Небольшой, но удобный компонент, который позволит добавить в опцию "Что выводить?" виджета "Элементы шаблона" новые пункты или скрыть существующие.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.