Как Flickr предотвращает загрузку изображений с сайта? - PullRequest
12 голосов
/ 25 января 2010

Просто интересно, как Flickr не позволяет людям загружать изображения со своего сайта? Что они используют?

Ответы [ 2 ]

18 голосов
/ 25 января 2010

Прозрачный. GIF над изображением. Вы все еще можете загрузить фактическое изображение, просмотрев исходный код HTML и найдя фактический URL-адрес изображения.

Например, случайное изображение: http://www.flickr.com/photos/34285128@N00/4300352607/

<img style="position:absolute;top:0px;left:0px;display:block" src="http://l.yimg.com/g/images/spaceball.gif" alt="" width="500" height="366">

Это прозрачное изображение сверху.

<img src="http://farm5.static.flickr.com/4057/4300352607_edcc5a4a9e.jpg" alt="Say It With Flowers by *sido* (back in a few days)." title="" width="500" height="366" class="reflect">

Это фактическое изображение, которое отображается под spaceball.gif.

0 голосов
/ 26 января 2010

Не для создания дампов, но концептуально, если вы действительно пытаетесь заблокировать загрузку изображения, вы могли бы (я думаю). Используя фреймворк, такой как asp.net mvc, вы можете пометить изображение уникальным ключом, сохранить ключ в памяти или какой-либо другой форме постоянства и передать его клиенту с идентификатором в качестве имени файла. С другой стороны, после запроса файла вы можете перехватить запрос изображения и выполнить поиск ключа, сопоставив его с фактическим файлом. Получив файл, вы возвращаете изображение как пользовательский результат с соответствующими метатегами (по крайней мере, в mvc, не уверен, как вы это сделаете в другом месте). Прежде чем вернуть его, вы помечаете результат как просмотренный.

Было бы много работы на сервере, но потребовалось бы много усилий для того, чтобы поймать изображение, если бы вы использовали технологию прозрачного gif Flickr вместе с ним.

Идея заключается в том, что при обычном просмотре будет выдан один запрос, и любые дальнейшие попытки просмотра изображения напрямую (путем просмотра источника и получения URL-адреса) будут заблокированы.

<./ threadump>

Извините, только что пришла в голову идея, и я хотел бы добавить ее к уже отвеченному вопросу (сон в спящем режиме и все такое прочее).

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