Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2010, 14:14   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию загрузка файлов

1.Как можно проверить *.jpg загружается или нет? Только проверка по названию, какое у него расширение не устраивает. Ведь можно переименовать exe файл в jpg. и программа распознает его как *.jpg.

2. можно ли к картинке прикрепить вирус, которыый напакостит на сервере? Если да, то как от этой заразы защититься?

3. Есть форма загрузки файлов на сервер
Код:
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
	<h2><b>Форма для загрузки файлов</b></h2>
	<form action="upload.php" method="post" enctype="multipart/form-data">
	<input type="file" name="filename"><br>
	<input type="submit" value="Загрузить"><br>
	</form>
</body>
</html>
Там есть поле ввода где надо указать адрес загружаемого файла. Можно ли в то поле ввода ввести SQL-инъекцию? если да то надо экранировать? Если да то какой функцией? я думаю что mysql_real_escape_string не подойдёт
4. SQL-инъекции ведь вводятся в поля ввода, так?
Dimarik вне форума Ответить с цитированием
Старый 17.07.2010, 22:10   #2
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

При загрузке изображения на сайт достаточно лишь проверить, является ли он jpg изображением. Есть минимум 2 способа это сделать.

1) С помощью функции getimagesize(), которая возвращает массив с информацией о изображении. Там храниться ширина, высота изображения, его размер, тип.
2) Почитайте о массиве $_FILE. Там тоже хранится информация о типе загружаемого файла.

По названию файла судить о его типе нет смысла, это даже вам понятно )
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 17.07.2010, 22:56   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

$_FILES['filename']['type'] - то есть если я просто НЕКАРТИНКУ переименую в *.jpg то там будет написано что это НЕКАРТИНКА?
Dimarik вне форума Ответить с цитированием
Старый 17.07.2010, 23:41   #4
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Когда файл загружается на сервер, он сохраняется как временный файл. Я бы на твоем месте смотрел на тип файла с помощью функции getimagesize(), т.к. он смотрит на MIME тип файла. Даже если пользователь попробует загрузить битую картинку, то image/jpeg типа уже не будет. Затем, если тип правельный - копируешь временный файл в нужную директорию с нужным тебе именем.

Цитата:
$_FILES['filename']['type']
Можно и так, но насколько я помню, такой способ "пропускает" битые изображения, выдавая их за целые.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файлов php Кибердемон Помощь студентам 0 31.05.2010 21:01
Загрузка файлов + ProgressBar record222 Общие вопросы Delphi 2 25.04.2010 11:07
Загрузка файлов Vladya Помощь студентам 3 01.07.2009 08:34
Загрузка .txt файлов TriCERATOP Помощь студентам 2 18.11.2008 11:17
Множественная загрузка файлов Artem Общие вопросы Delphi 14 03.08.2007 20:38