[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: WYSWYG-редактор и безопасность
Igoreian
Привет!

При разработке небольшого сайта возникла задача редактирования статей, чтобы не изобретать велосипед попробовал:

spaw2 - вполне хорош
Ckeditor - хорош, но для аплоада картинок нужны либо танцы с бубном по прикручиванию IMCE, ибо платный Ckfinder.

Вопрос безопасности. У меня на сайте прямой доступ есть только к index.php, а все остальное (кроме картинок и css) свалено в одну папку, в которой .htaccess c deny from all. Плюс еще в начале каждого скрипта идет проверка макроса, объявленного в index.php.

Все эти редакторы не могут работать в закрытой htaccess'ом папке. Пробовал для spaw2 дополнительными .htaccess открыть доступ к отдельным его папкам, становится лучше (иконки кнопок появляются), но до конца корректно он не работает. Как быть? Совсем не хочется оставлять такую дыру в безопасности. Может добавить в каждый скрипт spaw2 проверку на макрос?



Спустя 14 минут, 31 секунда (16.04.2011 - 17:54) neadekvat написал(а):
Цитата (Igoreian @ 16.04.2011 - 18:40)
Ckeditor - хорош, но для аплоада картинок нужны либо танцы с бубном по прикручиванию IMCE, ибо платный Ckfinder.

wtf? imglib for ckeditor.

Зачем вам из редактора доступ в файлы, к которым доступ запрещен?

Спустя 7 минут, 38 секунд (16.04.2011 - 18:02) Igoreian написал(а):
Не, я немного о другом.

У меня на сайте ни один php-скрипт (кроме index.php) не доступен для прямого вызова.

Я ставлю сторонний компонент (тот же spaw2), в нем разумеется есть php-файлы. Если я ограничу к ним прямой доступ (т.е. .htaccess deny from all), то редактор перестает работать (даже с условием, что я его запускаю через index.php). Если оставить все как есть, то через доступ к php-файлу редактора можно сделать какую-нибудь пакость (sql injection и т.п.).

Спустя 6 минут, 31 секунда (16.04.2011 - 18:09) neadekvat написал(а):
Это в админке так или сайт совмещен с админкой?

Спустя 14 минут, 49 секунд (16.04.2011 - 18:23) Igoreian написал(а):
В админке, да. Т.е. по идее всем туда доступ и не нужен.

Спустя 11 минут, 51 секунда (16.04.2011 - 18:35) neadekvat написал(а):
Геморр себе создаете.

Предлагаю сделать так:
В точке входа (файл index.php) создать константу, а в подключаемых файлах проверять ее наличие:
index.php
define('ACCESS', TRUE);


include 'includes/module.php';
module.php
if ( ! defined('ACCESS')) die;

Спустя 2 минуты, 45 секунд (16.04.2011 - 18:38) Igoreian написал(а):
Так я так и делаю! (.htaccess для подстраховки)

Просто эта проверка есть в моих php-файлах, а речь о php-файлах СТОРОННЕГО компонента, в данном случае - редактора. Добавить такую проверку в его файлы? Мне-то не трудно, но неужели именно так обычно закрывают уязвимости сторонних компонентов? Тогда вообще непонятно, почему периодически пишут что в таком-то файле такого-то компонента найдена критическая уязвимость - почему указанным способом не закрывать прямой доступ?

Спустя 4 минуты, 20 секунд (16.04.2011 - 18:42) neadekvat написал(а):
Не думаю, что такая подстраховка нужна - путает жешь.

А в компонентах обычно должна быть какая-то проверка безопасности или еще что-нибудь подобное..

upd.
Че-т я вообще сплю.

Например, тот же imglib: заходим в файл include/config.php и дописываем в начало проверку на авторизацию в админке. Все.

Спустя 30 минут, 37 секунд (16.04.2011 - 19:13) Igoreian написал(а):
Да, но
1. аналогичную проверку надо сделать не только в config.php, но и других его скриптах. В каких-то компонентах их с десяток, где-то - сотни!
2. почему-то ни разу не слышал о таком решении. Хотя оно самое очевидное и надежное)

Спустя 3 минуты, 17 секунд (16.04.2011 - 19:16) neadekvat написал(а):
Цитата (Igoreian @ 16.04.2011 - 20:13)
аналогичную проверку надо сделать не только в config.php, но и других его скриптах. В каких-то компонентах их с десяток, где-то - сотни!

Стоп-стоп. Компонент должен сначала подгружать конфиг, а потом уже работать. Соответственно, если в конфиге поставить преграду - то не надо капать сотню файлов.
А если вы найдете такой компонент, где подобная защита не будет предусмотрена - выкидывайте его нафиг - кто знает, что от него еще ждать?

Спустя 13 минут, 5 секунд (16.04.2011 - 19:29) Igoreian написал(а):
Конфиг нужен для корректной работы компонента) А можно ли без его подгрузки напрямую вызвать какой-то скрипт с инъекцией - это вопрос...

Спустя 8 минут, 45 секунд (16.04.2011 - 19:38) neadekvat написал(а):
Цитата (Igoreian @ 16.04.2011 - 20:29)
А можно ли без его подгрузки напрямую вызвать какой-то скрипт с инъекцией - это вопрос...

Если в каждом файле стоит подключение конфига - то о какой инъекции речь?
Если там где-то входные параметры неправильно обрабатываются - ну, тут уж ничего не спасет.

Спустя 20 минут (16.04.2011 - 19:58) Igoreian написал(а):
Цитата (neadekvat @ 16.04.2011 - 16:38)
Если в каждом файле стоит подключение конфига - то о какой инъекции речь?

Согласен, сразу что-то не сообразил)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.