Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > CURL: загрузка файлов и безопасность |
Автор: PROme2 9.7.2007, 16:35 |
снова я с вопросами безопасности ![]() цель - закачка картинки, урл которой вводит юзер какие тут могут быть опасности, как фильтровать инфу? пока я что делаю: - проверяю, не длиннее ли строка 255 символов - начинается ли она с 'http://' - содержит ли 'file:' что нужно еще сделать? ![]() |
Автор: ksnk 9.7.2007, 16:44 |
а зачем? Нужно скачать и проверить mime-type и размер. Размер проще проверять fopen'ом. Скачать 20, к примеру, кил и остановится. Если файл недокачался и/или некорректен - минус в репу юзеру ![]() Строка GET'а может быть существенно больше... |
Автор: ksnk 9.7.2007, 17:50 |
Юзер может заказать скачку очень большого файла... Кино, какое-нибудь, лечись потом... В принципе - да. ![]() |
Автор: lorien 9.7.2007, 18:05 | ||||||
На БД, что ли, экономите? )
Есть ещё и ftp:// и https://
Чего-чего содержит? Вот вам алгоритм: делаете HEAD запрос, смотрите размер и mime-type. Если всё ок, делаете GET запрос. Если вы параноик, то не надеетесь на данные HEAD запроса и проверяете, что размер реальных данных таки не превывышает лимит. Всё это удобно делать с помощью библиотеки curl, вернее её модуля для python. |
Автор: PROme2 9.7.2007, 18:08 | ||||||
CURLOPT_TIMEOUT в 15 секунд и все... мне кажется так проще, я просто когда-то сталкивался с определением размера, уже точно не помню, но помню что были проблемы, не всегда размер удавалось узнать
хватит, хватит... ![]() Добавлено через 4 минуты и 53 секунды таких длинных урлов не будет, чтоб не было возможности всяких пакостей накалякать ![]() в баню их... чтобы не прописывали локальные файлы
эта проверка делается не для поправок ошибок юзеров, а какраз для защиты от возможных взломов, так что на данные head полагаться точно не прийдется ![]() Добавлено через 11 минут и 3 секунды тут по соседству есть еще одна из моих тем ![]() про header('location:... впоследствие изучения вопроса всплыло много интересностей, в том числе и то, что при недостаточной обработке можно легко тырить куки юзеров и т.д. так что не хотелось бы тут что-то подобное пропустить, меня волнует именно то, что можно (ли?) сделать именно специально сформированным урлом? все остальные вопросы, что там за инфа, ее объемы и т.д. меня не волнуют, это проверяется... важно именно чтобы само выполнение функции с урлом, полученным от юзера не стало дырой Добавлено через 14 минут и 21 секунду мда, я уже молчу про sql-инъекции, вставленные в имена файлов или php-код, интегрированный прямо в файл картинки... опасность повсюду ![]() ![]() |