Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярка для фильтра файлов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
varyag
Отправлено: 24 Марта, 2011 - 09:18:49
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Здравствуйте. Написал свою первую(!) регулярку. Хочу сделать защиту от загрузки файлов типа .php, чтобы вместо картинок мне не закачали чегонить страшное. (еще проверяю mime тип, но в инете прочитал что его подделывают)
PHP:
скопировать код в буфер обмена
  1. $stroka='index.jpeg';
  2. if(preg_match("/^[\w]*[.][jpeg]{3,4}$/",$stroka,$mass)){
  3.         print_r ($mass);
  4. }else{
  5.         echo 'false';
  6. }


регулярка работает, но я не уверен, что она надежная. Однако
 
 Top
EuGen Администратор
Отправлено: 24 Марта, 2011 - 09:32:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Проверка по расширению - тем более.
Ну а если и проверять, то учитывать jpeg|jpg и регистр не учитывать при проверке.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
varyag
Отправлено: 24 Марта, 2011 - 09:48:55
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Цитата:
Проверка по расширению - тем более.

EuGen, ни совсем понял мысль

улучшил регулярное выражение с учетом Ваших замечаний:
PHP:
скопировать код в буфер обмена
  1. preg_match("/^[\w]*[.][jpeg|jpg|png|gif]{3,4}$/i",$stroka,$mass)
 
 Top
Мелкий Супермодератор
Отправлено: 24 Марта, 2011 - 10:51:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




varyag пишет:
(еще проверяю mime тип, но в инете прочитал что его подделывают)

Смотря который.
Тот, который в $_FILES - подделывается легко. Вычисляемый на месте mime_content_type - не подделывается.


-----
PostgreSQL DBA
 
 Top
varyag
Отправлено: 24 Марта, 2011 - 10:55:17
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Мелкий, да, проверяю по $_FILES
 
 Top
JustUserR
Отправлено: 25 Марта, 2011 - 21:33:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Мелкий пишет:
Вычисляемый на месте mime_content_type - не подделывается
В действительности для осуществления решения предполагаемой задачи, заключающеся в организации увеличения уровня безопасности для целевого web-ресурса, производимого на основании осуществления включения дополнительного ограничения, используемого для транспортируемых пользователем файловых объектов на целевой web-сервер, необходимо произведение верификации конфигурации локальной URL-области отонсительно определяемых MIME-типов в конечном базовом элеметном уровне трактования, а также сопоставленным параметрам каскадного исполнения ассоциированных объеков


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
varyag
Отправлено: 26 Марта, 2011 - 15:46:27
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




JustUserR, Вы про что? я не понял это
Цитата:
необходимо произведение верификации конфигурации локальной URL-области отонсительно определяемых MIME-типов в конечном базовом элеметном уровне трактования, а также сопоставленным параметрам каскадного исполнения ассоциированных объеков
 
 Top
Champion Супермодератор
Отправлено: 26 Марта, 2011 - 21:07:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




varyag пишет:
Вы про что? я не понял это
Да не обращай внимания. Он просто так написал.
varyag пишет:
[jpeg|jpg|png|gif]{3,4}$
Этому шаблону будут соответствовать расширения jn|g, gei, ||| и еще много других.
/\.(?:ext1|ext2|ext3)$/i - разрешить допустимые расширения ext1, ext2, ext3
/\.(?=\w)(?!ext1|ext2|ext3)\w+$/i - рапретить эти же три расширения.

Проверять лучше по расширению, потому что если кто-то загрузит файл с расширением жпег и в нем будет пхп код, то правильно настроенный веб сервер не будет выполнять php код в файле с другим расширением.
 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 02:09:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




varyag пишет:
JustUserR, Вы про что? я не понял это
Осуществление использование предполагаемого рассматриваемого аспекта функционирования, относительно системы поддержки автоматического определения параметра MIME-типов для целевых файловых ресурсов, в действительности обеспечивает внешнюю зависимости от конфигурации сопоставлений целевых MIME-типов в операционной системе, а также вложенному каскадному определению параметов alias-инга и действенного перенаправления для предполагаемой виртуальной области web-сервера


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB