| |
|
|
| | как можно организовать доступ к файлам в папке на сервере только через скрипт?
чтобы нельзя было напрямую указать путь к файлу через адресную строку | |
| |
|
|
| |
|
|
| |
для: moonfox
(19.01.2008 в 18:26)
| | | в .htaccess
| |
| |
|
|
| |
|
|
| |
для: ddhvvn
(19.01.2008 в 19:09)
| | | да это работает
но вот незадача скрипт не может получить доступ к картинкам...
img src невыводит изображений | |
| |
|
|
| |
|
|
| |
для: moonfox
(19.01.2008 в 19:36)
| | | Естественно. Потому что <imsg src/> - это обращение из браузера. Извне. А это и запрещает наш .htaccess.
Если вы хотите оставить .htaccess, то делайте скрипт, который будет принимать параметром имя картинки. Этот скрипт будет лезть в нужную папку, брать оттуда картинку и принтить ее обратно. Это замедлит загрузку всех изображений из этой папки. Но зато напрямую к ним обратиться будет нельзя.
Все src нужно будет переписать с src="./secretdir/file.jpg" на src="img.php?file.jpg".
Правда вот, не даст это нужного эффекта. Ведь всегда можно будет обратиться по адресу: img.php?file.jpg и получить нужную картинку.
Короче. непонятно зачем делать закрытой папку с картинками, если вы все равно собираетесь ее показывать. | |
| |
|
|
| |
|
|
| |
для: SHAman
(19.01.2008 в 20:51)
| | | задача вообщемто другая
у меня в теле хтмл вставлен видео файл формата mov
я хочу чтоб невозможно было обратиться к этому файла просто по прямому пути через адресную строку и чтоб нельзя было вот так просто его скачать через даулоад менеджер
параметр nocash позволяет не оставлять файла в temp папке | |
| |
|
|
| |
|
|
| |
для: moonfox
(19.01.2008 в 23:00)
| | | Тогда
<Files film.mov>
Deny from all
</Files>
|
там же | |
| |
|
|
| |
|
|
| |
для: moonfox
(19.01.2008 в 23:00)
| | | Ситуация та же самая. Если этот файл вставлен как object, а в src прописан адрес до файла, то его можно взять и вытащить. Иначе не получится.
Обычно все это удовольствие оборачивают во флеш-проигрыватель, который цепляет файл, который нужно проигрывать, но не явно передает путь до файла, а передает как-то хитро. Я не разбирался. Ведь на YouTube дают смотреть ролики. Но из html вы не получите адреса к ролику.
Можно, опять же, обращаться к скрипту, которому передавать, скажем, идентификатор. По этому идентификатору, из базы вытаскивать путь к файлу, хватать его и принтить, принтить:)
Просто нужно понять, что если вы хотите дать просмотреть файл посетителю в браузере, то вы никак не застрахуетесь на 100% от того, чтобы этот файл был скачан напрямую. Можно попытаться затруднить доступ к файлу, но гарантии нет и не будет. | |
| |
|
|
| |
|
|
| |
для: SHAman
(19.01.2008 в 23:42)
| | | >Ведь на YouTube дают смотреть ролики. Но из html вы не получите адреса к ролику.
Полный бред, сам постоянно сливаю оттуда ролики своим скриптом
ЗЫ: mod_rewrite поможет | |
| |
|
|
| |
|
|
| |
для: mihdan
(20.01.2008 в 00:56)
| | | по поводу 100% гаранти... хехе почему всегда заканчивают этми словами?:)))))
мне нужно всего лишь усложнить этот процесс до возможного и отгородить уже минимум 80% пользователей
mihdan
а что вы про mod_rewrite хотели сказать?
он же видоизменяет ссылки типа get
или яопять чего не знаю?) | |
| |
|
|
| |
|
|
| |
для: moonfox
(20.01.2008 в 01:17)
| | | Делаете запрос /files/3 а открывается /files.php?id=3 например | |
| |
|
|
| |
|
|
| |
для: mihdan
(20.01.2008 в 00:56)
| | | Может скажете где вы берете адрес самого файла?
А mod_rewrite не поможет. Какая стороннему юзеру разница, к чему обращаться: к mod/rewrite/files/file.mov или к files/file.mov? Это все равно, что отдавать файлы скриптом, передавая ему в параметрах имя файла. Скачать можно так же успешно. | |
| |
|
|
| |
|
|
| |
для: SHAman
(20.01.2008 в 10:41)
| | | SHAman
какой по вашему мнению есть выход? | |
| |
|
|
| |
|
|
| |
для: moonfox
(20.01.2008 в 17:40)
| | | никакого. Если вы выкидываете файл в сеть для просмотра, то вы, как ни старайтесь, открываете его для скачки. Если рассуждать логически: если браузер должен показывать мувик, то он должен его сначала ЗАГРУЗИТЬ. Если загрузить не может пользователь, то и браузер не сможет.
Думаю, нужно ограничивать доступ к странице с роликом, а не к самому ролику.
Можно попробовать помедитировать над вопросом: чем запрос на загрузку браузера отличается от запроса на загрузку юзером? С ходу не скажу. Возможно,разнятся какие-то заголовки. Но не уверен. | |
| |
|
|
| |
|
|
| |
для: SHAman
(20.01.2008 в 17:51)
| | | хе) да ничем! разницы никакой. Снифал.
И вообще зачем разбирать код чтобы узнать ссылку на файл) проснифал и скачал не парясь.
ХМ) по моему выход один... сделать так чтобы видео транслировалось в реальном времени... типа как организованы веб страницы с онлайн камерами... тока сделать трансляцию не с камеры а с файла(видео конечно). | |
| |
|
|
| |
|
|
| |
для: SHAman
(20.01.2008 в 17:51)
| | | Попробовал. Потестил. Докладываю.
Делал структуру:
html:
<img src="test.pl"/>
Perl:
не буду вдаваться в подробности, но тупо отдаю картинку, а переменные окружения складываю в лог.
Если обращаешься к страничке html, посылается заголовок HTTP_REFERER, а если обращаться напрямую, то не посылается.
Короче, нужно палить непосредственно REFERER. И, если он равен адресу страницы, на которую планируется транслировать видео, то отдавать. Иначе - нет.
Конечно, REFERER можно легко подделать. Но маленький процент пользователей, которые смогут это сделать. Как я понимаю, этого достаточно для вас. | |
| |
|
|
|
| |
|
|
| |
для: SHAman
(20.01.2008 в 18:06)
| | | хорошо я был на странице, дальше пошёл в этом же окне на ссылку картинки, какой рефер будет подан? вуаля) страницы с которой я шёл!
да! а ты уверен что рефер действует всегда?! а именно не все браузеры его передают, плюс файрвол и антивирусник его блочат иногда, а так же прокси сервера и vpn подключения(через которые некоторые сети работают) тоже режут рефер.
ИМХО но через рефер я бы фильтровать не стал не в коем случае!!! | |
| |
|
|
| |
|
|
| |
для: tricket
(20.01.2008 в 18:53)
| | | Предложите что-то получше. Больше идей нет.
Кстати, не понял я, куда вы собрались переходить, чтобы был передан рефер той же страницы, на которую вы пришли. | |
| |
|
|
| |
|
|
| |
для: SHAman
(20.01.2008 в 19:05)
| | | Вначале были на странице html где был рисунок, а дальше идём на сам рисунок.
В запросе на получение рисунка будет содержаться рефер предыдущей страницы!
А лучше я не знаю что... в том то и дело что невозможно хорошо защитится... | |
| |
|
|
| |
|
|
| |
для: tricket
(21.01.2008 в 11:36)
| | | Рефер страницы будет только если вы тыкнули на ссылку. REFERER хранит данные о том документе, на котором была тыкнута ссылка, а не о прошлом посещенном документе. То есть, если сделать так:
то все будет ОК. А если так:
<a href="file.php"><img src="file.php"></a>
|
тогда да, при нажатии на ссылку, рисунок будет выдан. | |
| |
|
|
| |
|
|
| |
для: SHAman
(21.01.2008 в 11:45)
| | | > тогда да, при нажатии на ссылку, рисунок будет выдан.
Рисунок при таком коде будет загружен еще до нажатия на ссылку. | |
| |
|
|
| |
|
|
| |
для: SHAman
(21.01.2008 в 11:45)
| | | SHAman соглашусь с тобой! В RFC вот что написано,
14.36 Referer
The Referer[sic] request-header field allows the client to specify,
for the server's benefit, the address (URI) of the resource from
which the Request-URI was obtained (the "referrer", although the
header field is misspelled.) The Referer request-header allows a
server to generate lists of back-links to resources for interest,
logging, optimized caching, etc. It also allows obsolete or mistyped
links to be traced for maintenance. The Referer field MUST NOT be
sent if the Request-URI was obtained from a source that does not have
its own URI, such as input from the user keyboard.
Referer = "Referer" ":" ( absoluteURI | relativeURI )
Example:
Referer: http://www.w3.org/hypertext/DataSources/Overview.html
If the field value is a relative URI, it SHOULD be interpreted
relative to the Request-URI. The URI MUST NOT include a fragment. See
section 15.1.3 for security considerations.
|
В общем признаю твой способ хорошим! Интересно будет посмотреть на практике) | |
| |
|
|
| |
|
|
| |
для: tricket
(21.01.2008 в 11:36)
| | | Будет реферрер передан или нет - личное дело клиента и его броузера. | |
| |
|
|