Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Вопрос по PHP   Найти похожие ветки 

 
Хинт ©   (2006-02-03 11:32) [0]

У меня на сайте есть возможность загружать пользовательские файлы. Вроде сделал все проверки, чтобы обезопасить сайт (проверка на расширение и т.д.), но... если загрузить файл xxx.php.rar, то он всё равно может быть выполнен как скрипт, если к нему обратиться. Почему так происходит? Как этого избежать?


 
McSimm ©   (2006-02-03 11:34) [1]

Как минимум не стоит позволять аплоадить файлы в пространство от DocumentRoot.

И надо разобраться с настройками. Не думаю что выполнение .php.rar это нормальное поведение.


 
Хинт ©   (2006-02-03 11:36) [2]

А возможно ли запретить выполнение скриптов в отдельной папке?
И по поводу .php.rar - это же не я настраивал Apache (сайт на fatal"e)


 
DSKalugin ©   (2006-02-03 11:44) [3]

Проверил у себя... ЁМАЁ Внатуре! Да ты "дыроотрыватель"! Сейчас подумаю как этого избежать


 
McSimm ©   (2006-02-03 11:44) [4]


> А возможно ли запретить выполнение скриптов в отдельной
> папке?

обычно файлы предпочтительно аплоадить во внешнюю относительно DocumentRoot папку -- там его никто не запустит через веб интерфейс.

/ftproot/
 /upload/
   xxx.php.rar
 /htdocs/
   index.php


 
WondeRu ©   (2006-02-03 11:48) [5]

Хинт ©   (03.02.06 11:36) [2]
А возможно ли запретить выполнение скриптов в отдельной папке?

можно
в .htaccess твоего каталога пишешь
AddType application/application/octet-stream .php


 
WondeRu ©   (2006-02-03 11:49) [6]

WondeRu ©   (03.02.06 11:48) [5]
ошибся
AddType application/octet-stream .php


 
McSimm ©   (2006-02-03 11:50) [7]

Или
RemoveType .php


 
DSKalugin ©   (2006-02-03 11:51) [8]


> AddType application/octet-stream .php

не помогло


 
vidiv ©   (2006-02-03 11:53) [9]

Прошу обратить внимание, что, даже если файлами могут быть только картинки, и проверяются функцией getimagesize - всеравно надо обезопасить выполнение, ибо зловредный код можно вписать, например, в тех JPEG-а и пр.


 
McSimm ©   (2006-02-03 11:55) [10]


> > AddType application/octet-stream .php
>
> не помогло


RemoveType .php тоже ?
.htaccess разрешены ?


> Не думаю что выполнение .php.rar это нормальное поведение.

Тут я ошибался. Документировано.
http://httpd.apache.org/docs/1.3/mod/mod_mime.html#multipleext


 
DSKalugin ©   (2006-02-03 11:58) [11]

RemoveHandler .php.rar не помогло
RemoveHandler .php не помогло
RemoveType .php не помогло


 
WondeRu ©   (2006-02-03 12:00) [12]

а если попробовать
AddType application/octet-stream .rar


 
Хинт ©   (2006-02-03 12:00) [13]

А мне RemoveType .php помогло


 
WondeRu ©   (2006-02-03 12:02) [14]

еще можно попробовать
<Location /upload>
 ForceType application/octet-stream
</Location>


 
McSimm ©   (2006-02-03 12:04) [15]


> RemoveType .php не помогло

А .htaccess вообще работает (обрабатываются) ?
Если бы был запрет именно на RemoveType - была бы ошибка.

PHP запускается как модуль или как cgi ?


 
Хинт ©   (2006-02-03 12:08) [16]

А RemoveType .php достаточно? Ведь насколько я помню существует еще обрабатываемые аналогично ".php" расширения...


 
Хинт ©   (2006-02-03 12:08) [17]

А RemoveType .php достаточно? Ведь насколько я помню существует еще обрабатываемые аналогично ".php" расширения...


 
McSimm ©   (2006-02-03 12:24) [18]


> А RemoveType .php достаточ

нет.

получается, универсальный вариант
ForceType octet/stream


 
DSKalugin ©   (2006-02-03 12:35) [19]

пхп как модуль у меня
htaccess действительно был отключен в конфиге (AllowOverride None)
включил (AllowOverride All)

добавил строчку RemoveType .php
после чего браузер стал показывать "начинку", а не выполнять скрипт


<?php
phpinfo();
?>


 
DSKalugin ©   (2006-02-03 12:43) [20]

Вот так кладовки и ломают :-))


 
McSimm ©   (2006-02-03 12:43) [21]


> стал показывать "начинку", а не выполнять скрипт

так и задумано, но тут автор ветки обратил внимание на тот факт, что правильно написать RemoveType в общем случае не удастся, т.к. не известно какие и сколько расширений зарегистрированы.

самый правильный на мой взгляд выход я писал выше - не ложите если этого можно избежать чужого в docementroot
ForceType выглядит неплохой альтернативой для других случаев


 
umbra ©   (2006-02-03 12:43) [22]

можно к загружаемым файлам дописывать отфонарное расширение и сделать

RemoveType .<расширение>


 
Kerk ©   (2006-02-03 12:44) [23]

DSKalugin ©   (03.02.06 12:43) [20]
Вот так кладовки и ломают :-))


Кладовку так взломать невозможно. :)


 
McSimm ©   (2006-02-03 12:45) [24]


> umbra ©   (03.02.06 12:43) [22]

Это вы не подумавши написали


 
umbra ©   (2006-02-03 12:56) [25]

возможно. честно говоря, я совершенно не знаком с конфигурированием Апача. Насколько я понял из обсуждения, если сделать RemoveType .<расширение>, то выполнить файл с таким расширением в среде сервера будет невозможно. или я не прав?


 
McSimm ©   (2006-02-03 13:01) [26]


> umbra ©   (03.02.06 12:56) [25]

не правы.

RemoveType удалит зарегистрированный в апаче MIME тип из рассмотрения, т.е. в вашем случае удалится тип для "отфанарного" расширения, которого и нет собственно.
Остальные расширения будут обрабатываться. Как, собственно, в случае с .php.rar


 
Хинт ©   (2006-02-03 13:01) [27]

По-моему .htaccess невозможно редактировать из скриптов. ИМХО.

2McSimm
ForceType octet/stream на самом деле лучший вариант (у меня вроде работает)


 
Banzaj!   (2006-02-04 02:16) [28]

Хинт, ну, вроде, все! ) Разобрались.



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.078 c
2-1139749664
~intel~
2006-02-12 16:07
2006.02.26
Скрытие значения поля


15-1139147108
Вячеслав Бессонов
2006-02-05 16:45
2006.02.26
Begin end.


15-1138260290
Чародей
2006-01-26 10:24
2006.02.26
Такты


2-1139745744
ihatelogins
2006-02-12 15:02
2006.02.26
Delphi + unicode


15-1139395807
ZMRaven
2006-02-08 13:50
2006.02.26
Memo