Редактирование css блога - возможные проблемы

  • Автор темы elvisinside
  • Дата начала

elvisinside

Guest
Редактор css блога - возможные проблемы

Хочу позволить держателям блогов на своем сайте редактировать css блога, как это реализовано на blogger.com.

В режиме редактирования пользователь видит css в textarea и может делать с ним все, что душе угодно.

Далее css сохраняется в mysql ( или сразу в css файл, я еще не определился :) ). В первом случае цсс подгружается в блог php файлом (<link rel="stylesheet" href="css.php?id={$blog_id}">, по втором - напрямую.

Также хочу реализовать механизм предварительного просмотра цсс - css из textarea постится в новое окошко, php принимает его, вставляет в <style></style> и показывет блог. ( я использую шаблоны smarty, этом случае css передается в шаблон )

Вопрос: стоит ли волноваться по поводу того, что пользователь может встатить в css php, perl, shell и т.д. код и если да, как с этим лучше всего бороться?

Мои соображения таковы:
1. если писать css в файл:
- при вводе shell-кода есть вероятность его выполнения при обращении к файлу ( если будут права и т.д.)
- при вводе php, perl и т.д. кода есть вероятность его выполнения если что-то заставит apache выполнять файл с расширением css как php, perl и т.д. код

2. в режиме превью цсс передается в смарти с помощью $smarty->assign. если пользователь вводит какой-то php-code, здесь может произойти трабл.
 

white phoenix

Новичок
elvisinside
хранить можно как в базе так и в файле, принципиальной разницы нет, но если в файле то контролируй имя файла, т.к. если на твоем хостинге PHP собран как CGI, то может произойти следущая картина: предположим ты сделал папку customcss и хранишь там файлы с названиями вида "{$username}.css", то можно зарегистрировать пользователя "shell.php", файл будет "shell.php.css", тем не менее он будет интепретироваться как .php файл, со всеми вытекающими из этого последствиями.
Содержание нужно фильтровать в любом случае. Ведь CSS не содержит таких символов как "$", "<", ">" и т.д. Решается парой регулярных выражений.
P.S. с "shell.php.css" бороться очень легко, сделай скрипт css который будет выдавать содержимое, а доступ напрямую закрой через .htaccess.
 

elvisinside

Guest
может кто знает, есть ли какая-то библиотечка для проверки валидности css?

погуглил, такой вроде нету

нашел только онлайн-валидаторы
 

white phoenix

Новичок
elvisinside
по идее не сложно самому написать такую функцию.
asm
Это правда.
 

white phoenix

Новичок
asm
Не говори мне что делать и я не скажу тебе куда идти.
Apache 1.33.33, PHP 4.3.10 как CGI и script.php.css.
 

asm

Пофигист
Автор оригинала: white phoenix
asm
Не говори мне что делать и я не скажу тебе куда идти.
Apache 1.33.33, PHP 4.3.10 как CGI и script.php.css.
Это что за апача такая? :):):) Где брал?
 

asm

Пофигист
по твоей просьбе white phoenix:
Сам создал проблемму сам её решил :) Молодец.
 

white phoenix

Новичок
asm
?
проблему создали те кто сделал так что эти файлы исполняются, а я её не решал в корне, просто подставил костыли.
 

Гравицапа

elbirret elcno
то можно зарегистрировать пользователя "shell.php", файл будет "shell.php.css", тем не менее он будет интепретироваться как .php файл, со всеми вытекающими из этого последствиями.
можно узнать почему?
 

white phoenix

Новичок
Гравицапа
понятия не имею. я однажды это заметил закачав скрипт кое-куда.. '.php' было запрещено, сделал script.php.jpg и скрипт выполнился, затем посмотрел параметры сервера, и увидел апач + php cgi, проверил своё предположение на других серверах - заработало.
 
Сверху