Нужен хороший фильтр для аплоуда
1.
★☆ ИгRok™ ☆★ (08.03.2010 / 19:36)
Всем привет,так как я получил хороший урок вчера,что перед продажей скриптов,нужно делать на совесть и доводить до ума,поэтому,ребята,напишите пример хорошего фильтра предохраняющий любой скрипт загрузки шелла любых расширении на сервер! С меня плюс,за ранее спасибо
2.
Славик (09.03.2010 / 07:47)
Вопрос интересный. Защитить все скрипты от загрузки шела, у тя каждый 2 скрипт обменник? По теме универсального фильтра не бывает чтоб хоп и не сломают, фильтрул глобальные переменные. Кроме загружаймых файлов. Проверяй расширение файла, или создай таблицу разрешеных файлов.
3.
★☆ ИгRok™ ☆★ (09.03.2010 / 08:37)
2.ты видел у меня еще одну тему об обменнике? И к чему это? Это первый обменник,думай прежде чем писать,я попросил фильтр,а не представления
4.
★☆ ИгRok™ ☆★ (09.03.2010 / 09:02)
<?php
$legalext = array('rar','zip','jar','mp3');
$ext = explode('.',$_FILES['userfile']['name']);
$ext = strtolower($ext[count($ext)-1]);
if(preg_match('I[a-z0-9\_\.\-\(\)]+$Ii',$_FILES ['userfile']['name']) AND in_array($ext,$legalext)){
?>
Пойдет ли такой? Поправьте если я ошибаюсь
5.
Александр (09.03.2010 / 09:36)
4, зачем тебе там explode и регулярки?
Вот
<?
$dext = array('jpg', 'gif');
$ext = pathinfo(strtolower($_FILES['file']['name']), PATHINFO_EXTENSION);
if(!in_array($ext,$dext))
{
die('Недопустимое расширение файла');
}
?>
6.
Александр (09.03.2010 / 10:13)
И еще кстати, зачем писать пользователю что он грузит файл с неправильным названием? Проверяй регуляркой название, если там есть русские буквы, или недопустимые символы, обрабатывай функцией транслита и сохраняй
7.
★☆ ИгRok™ ☆★ (09.03.2010 / 10:32)
А зачем? Пусть и на русском можно,кстати,код который ты написал,он относится к пропуску типо? То ёсть пропускает файлы,только те,которые указаны в фильтре?
8.
Александр (09.03.2010 / 11:16)
Да, в данном случае будет пропускать jpg, gif файлы, на остальные будет ругаться.
9.
★☆ ИгRok™ ☆★ (09.03.2010 / 11:51)
8.вот,спасибо,я твой должник,плюс поставил
10.
Артур (09.03.2010 / 19:39)
6, зачем такое? rawurlencode() и никаких проблем ;)
11.
Станислав (10.03.2010 / 10:13)
Нафиг тебе фильтр? Сохраняй файлы не с оригинальным расширением,а в виде мд5. Потом скриптом выдавай
12.
Артур (10.03.2010 / 11:32)
11, тупо
13.
Станислав (10.03.2010 / 13:36)
12 что именно тупо? Походу все популярные обменники, разработчики громадных проектов и тд тупые?
14.
ramzes (10.03.2010 / 13:54)
#11 если ты выдаешь файл скриптом то просто закрой хитаччесом доступ к папке где лежат файлы, и не обязательно хранить как хеш имени, можно и с нормальным именем это ни какой роли не играет
15.
★☆ ИгRok™ ☆★ (10.03.2010 / 13:55)
Мужики,не ссорьтесь =) мне уже написал lugаrо фильтр который пропускает файлы указанные в нем...
16.
Станислав (11.03.2010 / 11:39)
14 а файлы могут быть и с одинаковым названием
17.
ramzes (11.03.2010 / 14:10)
mt_rand() хеш у них между прочим тоже одинаковый будет
18.
Azzido (11.03.2010 / 15:01)
на больших обменниках не только md5 применено, там дополнительное шифрование и чаще всего с ключом
19.
Удаленный (11.03.2010 / 16:20)
да фильтра так такового не напишешь!
Защитититься можно через .htaccess
-----
1.МЕТОД
php_value engine Off
- откл.интерпретацию и скрипты зломщика
2.МЕТОД
RemoveHandler .php
AddType application/x-httpd-php-source .php
RemoveType .php
Options -ExecCGI -Indexes
ХОСТЕРАМ привет
20.
Михаил (12.03.2010 / 15:43)
#19, второй метод дырявый, на хостингах могут работать .php4, .php3, .php5. Кроме того может быть такое, что файлы по-умолчанию обрабатываются как php. И часто работают двойные расширения, типа .php.hrdgf
21.
Михаил (12.03.2010 / 15:44)
И еще нужно убедиться, что cgi скрипты отключены в папке
22.
Neformat (12.03.2010 / 17:04)
Проще закрыть вебдоступ ко всем файлам, и разрешить к определенным расширениями. А если скриптом файлы отдаются - так вообще вебдоступ к папке закрыть.
23.
★☆ ИгRok™ ☆★ (12.03.2010 / 17:34)
22.ну я типо такого и сделал=) домой сейчас приеду,выгружу код,дадите комментарии
URL:
https://visavi.net/topics/6805