|
|
|
| Не знаю вообще с чего начать, так как в инете начитался, что при создании скрипта для загрузки файлов на сервер могуть возникнуть уязвимости...
Можете написать безопастный скрипт, удовлетворяющий следующие условия?
1.Загружаемые картинки должны иметь формат jpg или png;
2.Размер картинок не должен превышать 128 кбайт.
3.На сервере картинки должны сохраняться под другим именем, например 1.jpg а не как назвал их юзер (мояпопа.jpg)
4.Скрипт должен быть безопастным... | |
|
|
|
|
|
|
|
для: nikolayers
(30.04.2011 в 21:43)
| | 2. Уменьшение изображений - это отдельная задача, готовую функцию можно обнаружить по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145.
3. А какой принцип переименования вы хотите использовать (время, транслитация русских символов)? Как вам это видится? | |
|
|
|
|
|
|
|
для: cheops
(30.04.2011 в 22:35)
| | да нет...просто ну там файл называется sdatd7923nda.png а на сервере сохранялся бы под именем $name.png, где $name это имя юзера... | |
|
|
|
|
|
|
|
для: nikolayers
(01.05.2011 в 14:11)
| | А имя пользователя откуда извлекается (или у вас уже есть готовая переменная $name)? | |
|
|
|
|
|
|
|
для: nikolayers
(30.04.2011 в 21:43)
| | 1. Проверку расширения файла можно осуществить, отталкиваясь от следующего скрипта
<?php
$filename = "sample.png";
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$array = array("jpg", "jpeg", "png");
if(!in_array($ext, $array)) exit("Недопустимый формат файла");
else echo "Все хорошо";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.04.2011 в 23:03)
| | проверка формата по расширению на мой взгляд не очень удачная, при определенных настройках сервера можно и jpeg файл на исполнение запустить (что не так сложно как кажется) надежнее читать сам файл и по мета данным проверять формат. хотя думаю это заслуживает внимания если вы ДЕЙСТВИТЕЛЬНО СЕРЬЕЗНО заботитесь о безопасности | |
|
|
|
|
|
|
|
для: parczynski
(01.05.2011 в 02:51)
| | >по мета данным проверять формат
Под мета данными что имеете в виду? И почему злоумышленник не может подделать их?
Проверка расширения удобна тем, что у вас в папку попадают только те файлы, расширения которых вам известны. Поэтому при помощи .htaccess вы полностью контролируете их поведение. Т.е. если у злоумышленника нет доступа к файловой системе - он уже ничего не поделает, чтобы он в этот файл не записал. А если у него есть доступ, ему ничего загружать через скрипт не нужно, он разместит на файловой системе все, что ему будет угодно. | |
|
|
|
|
|
|
|
для: cheops
(01.05.2011 в 10:37)
| | я имел ввиду по синтаксису и структуре файла проверять формат. чтобы это был не скрипт с расширением jpeg а действительно картинка. но опять же повторюсь это для критических ситуаций, в обычном случае это пожалуй действительно ни к чему т.к. в 90% случаев проще взломать хостера использующего популярное (а значит наиболее изученое с точки зрения багов ПО) чем методом тыка ковырять чей-то скрипт загрузки файлов | |
|
|
|
|
|
|
|
для: parczynski
(01.05.2011 в 14:36)
| | Тут вот еще какая штука есть, если есть возможность так манипулировать скриптом, чтобы он включал код из произвольного файла, то можно обойтись без файлов на данном хосте. Для этого достаточно разместить код в TXT-файле (TXT будет отдан без искажений) на другом сервере и подключать его. Скрипт в JPG-файле, конечно, ничего хорошего не представляет, но если есть возможность запускать его, запрет таких файлов уже ничего не даст - злоумышленник найдет способ доставить PHP-код на сервер, используя другие хосты. | |
|
|
|