Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файлов на сервер - проблема безопасности.
 
 автор: гость 007   (15.11.2006 в 17:41)
 
 

дело такое:
на форуме, когда пользователь добовляет сообщение, он может прикрепить файл.
Этот файл кладётся в какую нибудь дирректорию.
И когда кто-нибудь просматривает тему ему даётся ссылка на файл.
Вопос:
Если пользователь кликнет по ссылке то он получит файл....
а если кто то кинул туда не картинку, и не текстовый документ, а PHP-скрипт?
При переходе по ссылке ... скрипт же будет выполнен сервером!
Как сделать так, что бы он не выполнялся?
Может кинуть в эту дирректорию .htaccess, и в нём написать что-нибудь?

   
 
 автор: dert   (15.11.2006 в 17:53)   письмо автору
 
   для: гость 007   (15.11.2006 в 17:41)
 

можно сделать проверку на расширение файла и если это не gif, jpg, txt то загрузка не будет выполняться
типа:
<?php
 $s
="C:\Documents and Settings\Мои документы\f.txt";
 
$s=explode(".",$s);
 if((
$s[1]=="jpg")or($s[1]=="gif")or($s[1]=="txt")){
         print 
"Ok";
         }else{
         print 
"Error";

       }
?>

   
 
 автор: гость 007   (15.11.2006 в 18:07)
 
   для: dert   (15.11.2006 в 17:53)
 

в том то и дело , что хотелось бы ,что бы пользователь мог приаттачить что ему угодно.

ЗЫ если пользователь подгрузит файл с именем hacker.jpg.php, то проверка которую вы написали - не сработает.

   
 
 автор: [ alien ]   (15.11.2006 в 21:38)   письмо автору
 
   для: гость 007   (15.11.2006 в 18:07)
 

Ничего у тебя не получится :) Он просто тебе покажет картинку, которую не удалось отобразить )

   
 
 автор: гость 007   (15.11.2006 в 21:52)
 
   для: [ alien ]   (15.11.2006 в 21:38)
 

выполнится скрипт hacker.jpg.php!!!!!!
а в нём может быть какой угодно код!!! который может чо угодно сделать!

   
 
 автор: гость 007   (15.11.2006 в 18:12)
 
   для: dert   (15.11.2006 в 17:53)
 

Если уж на то пошло..
Тогда вот так:

<?php 
 $s
="C:\Documents and Settings\Мои документы\f.txt";
 
$s=explode(".",$s); 
 
$i=count($s)-1;
 if((
$s[$i]=="jpg")or($s[$i]=="gif")or($s[$i]=="txt")){ 
         print 
"Ok"
         }else{ 
         print 
"Error"

       } 
?>

   
 
 автор: гость 007   (15.11.2006 в 18:16)
 
   для: гость 007   (15.11.2006 в 17:41)
 

вообщем, я так понимаю, нужно что бы сервер не выполнял скрипты в этой дирретории.
это,я так понимаю можно сделать с помощью .htaccess ....
только что туды писать?...

   
 
 автор: Poison   (15.11.2006 в 20:04)   письмо автору
 
   для: гость 007   (15.11.2006 в 18:16)
 

Просто переводи пхп файлы в тхт=)) чтоб скрипт выводился в броузере.

   
 
 автор: гость 007   (15.11.2006 в 20:28)
 
   для: Poison   (15.11.2006 в 20:04)
 

а как на этом форуме приаттачивается файл?....
нукась проверим....)))
приаттачен файл следующего содержания:

<?php
echo "Hello world!)";
?>

   
 
 автор: гость 007   (15.11.2006 в 20:32)
 
   для: гость 007   (15.11.2006 в 20:28)
 

терь фсё ясно)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования