Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите по этому скрипту (https://javascript.ru/forum/misc/40724-podskazhite-po-ehtomu-skriptu.html)

spunkf 17.08.2013 12:24

Подскажите по этому скрипту
 
Всем добрый день.
Хочу у себя на сайте реализовать защиту от скачивания файлов по прямой ссылке. На одном из сайтов нашел такой скрипт. Расскажите, как он работает?

<form action="" method="POST" id="fileGetForm" >
<input type="hidden" name="download" value="1" />
<a href="javascript:void(0);" onClick="$('#fileGetForm').submit();" class="down-class">ИМЯ ФАЙЛА</a>
</form>
Спасибо

danik.js 17.08.2013 13:13

Цитата:

Сообщение от spunkf
Расскажите, как он работает?

Это не скрипт, а HTML-код :haha:

danik.js 17.08.2013 13:17

Так можно заменить ссылку кнопкой:
<form action="path/to/file.ext">
    <button type="submit">Скачать файл</button>
</form>

Но это ни в коей мере не "защита". Файл все также можно будет скачать по прямой ссылке. Но полные ламеры, коих большинство, ее не достанут.

spunkf 17.08.2013 15:39

пользователь кликает по ссылке, на сервер передается "ИМЯ ФАЙЛА"... как распутать, из какой директории выгружается этот файл?

danik.js 17.08.2013 16:13

Ты никак не можешь узнать директорию, откуда выгружается файл. Сервер может отдать файл в ответ на любой запрос!
Например:
http://site.ru
http://site.ru/file.ext
http://site.ru/jfklsdjflsdjflasjflasdjflsf
http://site.ru/download?file=file.ext
http://site.ru/download?file=afkdjsflsjdflsjdflsjfdls

Где реально расположен файл в файловой системе - определить невозможно. Да и смысла в этом нет. Ну лежит он допустим в /home/files/file.ext и че дальше?

spunkf 17.08.2013 16:15

вероятно, что там лежат и другие...

Цитата:

Сообщение от danik.js (Сообщение 267941)
Но это ни в коей мере не "защита". Файл все также можно будет скачать по прямой ссылке. Но полные ламеры, коих большинство, ее не достанут.

первая цитата (выше) не противоречит второй (ниже)?
Цитата:

Сообщение от danik.js (Сообщение 267941)
Где реально расположен файл в файловой системе - определить невозможно.


mta88 17.08.2013 17:31

Цитата:

Сообщение от spunkf (Сообщение 267928)
реализовать защиту от скачивания файлов по прямой ссылке

в общем случае это невозможно, потому что ссылки не делятся на "прямые" и "кривые" -- они все одинаковые

но есть несколько вариантов для ограничения или выборочного разрешения скачивания
  • временные и случайные ссылки (в том числе с проверкой по ip и запросом пароля)
  • проверка заголовков Referer и User-Agent запроса (легко обходится)
  • проверка cookies в запросе (например, разрешение на скачивание только после регистрации)


Часовой пояс GMT +3, время: 17:27.