![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Добрый день.
Вот таким кодом проверяю на существование файла и если его нет перенаправляю на скрипт .htaccess
Если вызывается: 1. http://example/css/style.css - перенаправляет, все ок (файл не существует) 2. http://example/css/folder/style.css - перенаправляет, ошибка (файл существует) Изменяем htaccess
Если вызывается: 1. http://example/css/style.css - прямое обращение к файлу, ошибка (файл не существует) 2. http://example/css/folder/style.css - прямое обращение к файлу, все ок (файл существует) Как исправить? Добавлено через 1 минуту и 48 секунд P.S. То есть, мне надо если файл не существует (http://example/css/style.css, http://example/css/folder/style.css, http://example/css/f/folders/style.css ) то вызвать скрипт -------------------- Amazing ![]() |
||||
|
|||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Попробуй так:
Думаю тут у тебя ещё есть проблема правда немного в другом. Попробуй у себя перейти по такому урлу: http://example/css/folder/filename.php или http://example/css/filename.php Это сообщение отредактировал(а) krundetz - 30.1.2012, 13:00 |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Протестировал у себя твою версию правил, работают как надо. То есть:
1. если файл http://example/css/style.css есть он показывается, 2. если есть http://example/css/folder/style.css тоже показывается, 3. если файл http://example/css/folder/style1.css отсутствует то выполняется php скрипт, 4. если файл http://example/css/style1.css отсутствует тоже выполняется php скрипт, 5. если файл http://example/css/filename.php есть, то он запуститься на выполнение. Это сообщение отредактировал(а) krundetz - 30.1.2012, 13:21 |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
krundetz, твой вариант:
1. http://example/css/style.css - перенаправляет на скрипт (файл существует) - не должен 2. http://example/css/newstyle.css - перенаправляет на скрипт (файл не существует) - все правильно 3. http://example/css/folder/style.css - перенаправляет на скрипт (файл существует) - не должен Добавлено @ 13:30 мой вариант
то: 1. http://example/css/style.css - открывает файл (файл существует) - все правильно 2. http://example/css/newstyle.css - открывает файл (файл не существует) - не должен 3. http://example/css/folder/style.css - открывает файл (файл существует) - все правильно Это сообщение отредактировал(а) MoLeX - 30.1.2012, 13:31 -------------------- Amazing ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
MoLeX, это ты про мой вариант?
Кстати с почином тебя статей на хабре. Это сообщение отредактировал(а) krundetz - 30.1.2012, 13:32 |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
krundetz, да
-------------------- Amazing ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ну как я уже сказал у меня твой первый вариант полностью работоспособен Это сообщение отредактировал(а) krundetz - 30.1.2012, 13:34 |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
хм, у меня нет.
вот весь .htaccess, может в нем что не так
-------------------- Amazing ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
у меня вот так работает Это сообщение отредактировал(а) krundetz - 30.1.2012, 13:38 |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
блин, ну правильно же.... правила надо разделять, а я все в одну кучу свалил
![]() так вот все работает
Добавлено через 20 секунд эта ты о чем? -------------------- Amazing ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
RewriteCond работает с ОДНИМ RewriteRule, расположенным сразу под ним. "Отбивка" куска правил пустой строкой - не работает
![]() Sorry, не досмотрел до конца топика, уже все таки ясно Добавлено @ 14:17 Можно указывать флаг Chain [C], если нужно склеить правила Это сообщение отредактировал(а) ksnk - 30.1.2012, 14:20 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
создай в директории css файл filename.php а потом обратись к нему http://example/css/filename.php в результате выполнится php код выполняться который не должен. Если злоумышленник найдет способ закачать в эту директорию файл php он получит возможность его выполнить. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Чем в этом случае злоумышленник будет отличатся от честного налогоплательщика, который и хотел разместить там php код? ![]() Файл от загрузки в непредусмотренное для исполнениян место защищается, обычно, несколько другими средствами. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
||||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ну уровня защиты должно быть хотя бы 2: 1. Невозможность загрузить файл на сервер (как показывает практика, найти такую дырку в скриптах реально, вроде бы уже закрывали а она опять появляется и на том же самом месте, как кто специально делает, хотя конечно виной всему раздолбайство) 2. Так как от первого 100% страховки нет, то хорошо бы подстраховаться что бы файлы не имеющие отношения к движку сайта запуститься не могли. 3. Так же помещение скрипта в директорию которая для скриптов не предназначена может быть просто не замечено владельцем сайта, так как глаз замыливается и рассуждение будет примерно таким "если я не помещаю туда файлы то и искать там не буду". Выходом из ситуации может быть модификация .htaccess файла следующим образом:
то есть условие будет отрабатываться только для файлов у которых расширение css, и если не забыть запретить выполнение таких файлов интерпретатором php, то посторонний код на сервере запустить не удастся Добавлено @ 17:07
Тем что честный налогоплательщик разместит там нужный ему код, а злоумышленник код который направлен на взлом. З.Ы. Возможно в приведенном коде ошибка надо проверить пример из памяти Это сообщение отредактировал(а) krundetz - 30.1.2012, 17:11 |
||||||
|
|||||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А если юзер разместил там php файл специально? Какая нибудь LESS/SASS реализация или еще какой финт с css на лету? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |