Golodnyi
22.10.2013 - 12:59
Скрипт файлообменника, генерирует короткие ссылки на файлы, при загрузке изображений имеет превью перед скачиванием, есть возможность поставить пароль или описание к файлу.
Файлы можно загружать без регистрации пользователя, файлы таких пользователей удаляются автоматически через 31 день (число дней меняется в конфиге, так же меняется размер максимального файла).
Есть регистрация, зарегистрированный пользователь может просматривать список своих файлов (их файлы автоматически не удаляются), при желании может удалить любой свой файл, предусмотрен баланс, но никаких платных фич нету, это может сами придумаете, напишите.
Есть система рефералов, спроектированная по БД и учитывается при регистрации, но опять же бонусов за рефералов нет, для вашего будущего фича)
Зареганный юзер может сменить пароль при необходимости.
Размер загружаемых файлов и размер квоты меняется для гостей и пользователей, так же меняется для каждого пользователя индивидуально.
Есть мобильная версия сайта.
Пример
скрипта на
http://golodnyi.ruТехнические требования
PHP 5.3, MySQL, .htaccess, chmod
Автор: Я
Условия продажи: Отдаю 3 копии, владельцы могут перепродавать
скрипт.
Цена: 1000 руб.
Дополнительная информация:
скрипт написан на CodeIgniter с применением Smarty
Контакты ICQ: 292496, E-mail: ochen@golodnyi.ru
Golodnyi
25.10.2013 - 09:44
Исходники проекта
http://golodnyi.ru/13 вариант не для ленивых) может быть найдете ошибки/дыры)
vagrand
25.10.2013 - 10:56
Golodnyi
Какие типы файлов можно загружать и как именно проверяете что был загружен допустимый?
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Golodnyi
31.10.2013 - 08:30
Цитата (vagrand @ 25.10.2013 - 10:56) |
Golodnyi Какие типы файлов можно загружать и как именно проверяете что был загружен допустимый? |
проверка по расширению файлов, запрещены php и близкие к нему форматы, но даже если пользователь зальл бы php Файл, ему бы это ничего не дало, он бы не смог его запустить
vagrand
31.10.2013 - 09:12
Golodnyi
Цитата |
но даже если пользователь зальл бы php Файл, ему бы это ничего не дало, он бы не смог его запустить |
На чем основана эта уверенность?
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Игорь_Vasinsky
31.10.2013 - 09:32
файл был задержан и переименован в *.html
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (vagrand @ 31.10.2013 - 09:12) |
Golodnyi
Цитата | но даже если пользователь зальл бы php Файл, ему бы это ничего не дало, он бы не смог его запустить |
На чем основана эта уверенность?
|
потому что файлы переименовываются и угадать его имя невозможно
vagrand
2.11.2013 - 12:33
Guest
Цитата |
потому что файлы переименовываются и угадать его имя невозможно |
Это не эффективная защита, кто-то на хостинге забудет отключить индексацию каталогов и вуаля. И потом каким образом тогда происходит его отдача?
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Думаю было бы не плохо чтоб система перед загрузкой файла помещала его в архив, и задавала пароль на сам архив.
Таким образом место на сервере будет заниматься в разы меньше, да и это наверно самый безопасный вариант.
Цитата (vagrand @ 2.11.2013 - 12:33) |
Guest
Цитата | потому что файлы переименовываются и угадать его имя невозможно |
Это не эффективная защита, кто-то на хостинге забудет отключить индексацию каталогов и вуаля. И потом каким образом тогда происходит его отдача?
|
Генерируется хэш, файл переименовывается в hash.format, этот хэш записывается в бд, когда пользователь запрашивает файл, смотрится хэш и ищется файл с таким хэшем.
Цитата (123456 @ 2.11.2013 - 15:09) |
Думаю было бы не плохо чтоб система перед загрузкой файла помещала его в архив, и задавала пароль на сам архив. Таким образом место на сервере будет заниматься в разы меньше, да и это наверно самый безопасный вариант. |
Ну тут будет ряд проблем, например не все хостинги имею либы работы с архивами + еще нагрузка на сервер возрастет и скорость работы упадет, хотя в плане экономии места, это конечно резонно для файлообменника
Цитата |
не все хостинги имею либы работы с архивами |
Современные хостинги без поддерживают данные функции
Цитата |
нагрузка на сервер возрастет и скорость работы упадет |
ну тут смотря с какой стороны смотреть...
загрузка файлов будет длиться НЕМНОГО дольше, но вот скачка!! Время скачки упадет, т.к. вес файла будет изменен в меньшую сторону...
Так вот, лучше подождет один пользователь(загрузчик файла) чем те, которые будут скачивать( их то может быть и 1000000, а загрузчик 1)
vagrand
2.11.2013 - 15:55
Guest
Цитата |
Генерируется хэш, файл переименовывается в hash.format, этот хэш записывается в бд, когда пользователь запрашивает файл, смотрится хэш и ищется файл с таким хэшем. |
Ну и что? Ищется, а что потом? Формируется ссылка на этот файл или он раздается через скрипт? Если первый вариант, то вот вам и путь к файлу и ничего узнавать не нужно, а если второй вариант, то успехов с отдачей больших файлов. Грузить сервак будет жестко.
123456
Цитата |
Время скачки упадет, т.к. вес файла будет изменен в меньшую сторону... |
Справедливо только для файлов в текстовом формате, а их-то как раз на файлообмениках меньшинство. Для картинок и медиа файлов архивация не уменьшит размер, а нагрузит сервак будь здоров. И потом, такой способ защиты все равно что делать операцию на мозге через задний проход.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Цитата (123456 @ 2.11.2013 - 15:45) |
Цитата | не все хостинги имею либы работы с архивами |
Современные хостинги без поддерживают данные функции
Цитата | нагрузка на сервер возрастет и скорость работы упадет |
ну тут смотря с какой стороны смотреть...
загрузка файлов будет длиться НЕМНОГО дольше, но вот скачка!! Время скачки упадет, т.к. вес файла будет изменен в меньшую сторону...
Так вот, лучше подождет один пользователь(загрузчик файла) чем те, которые будут скачивать( их то может быть и 1000000, а загрузчик 1)
|
как скорость возрастет? Файл загружают, его пакуют, файл запрашивают, его распаковывают и выдают, ты же не архив выдавать будешь...поэтому медленнее для всех будет
Цитата (vagrand @ 2.11.2013 - 15:55) |
Guest
Цитата | Генерируется хэш, файл переименовывается в hash.format, этот хэш записывается в бд, когда пользователь запрашивает файл, смотрится хэш и ищется файл с таким хэшем. |
Ну и что? Ищется, а что потом? Формируется ссылка на этот файл или он раздается через скрипт? Если первый вариант, то вот вам и путь к файлу и ничего узнавать не нужно, а если второй вариант, то успехов с отдачей больших файлов. Грузить сервак будет жестко.
123456
Цитата | Время скачки упадет, т.к. вес файла будет изменен в меньшую сторону... |
Справедливо только для файлов в текстовом формате, а их-то как раз на файлообмениках меньшинство. Для картинок и медиа файлов архивация не уменьшит размер, а нагрузит сервак будь здоров. И потом, такой способ защиты все равно что делать операцию на мозге через задний проход.
|
выдается не ссылкой, а идут заголовки с бинарными данными, имя файла никак не палится
Быстрый ответ:
Powered by dgreen