2009-12-27 2 views
2

Странный вопрос, но здесь идет ...Перенаправление без изменения URL-адресов?

У меня есть веб-страница, и я хочу получить изображения с другого сайта. Однако я хотел бы запретить пользователям знать, какой сайт. Он не должен быть совершенным, просто «достаточно хорошим». Есть ли способ, которым я могу написать и иметь браузер получить изображение из другого домена? Если пользователь щелкнет правой кнопкой мыши и отобразит изображение изображения, я бы хотел, чтобы он сказал mysite.com/redirect/id.jpg, а не новый url. Есть ли способ сделать это?

До сих пор моей единственной идеей было использовать WebClient для получения данных со своего сервера и отправки их. Но это убьет полосу пропускания. Мне не нужно, чтобы он был полностью скрыт, достаточно хорошо.

ответ

9

Используйте CSS background-image стиль на <div> вместо тега img. Поскольку фон CSS не отвечает на «right-click..Properties», как это делают теги img, случайный зритель не будет знать местоположение изображения, щелкнув правой кнопкой мыши (хотя он будет виден через «источник просмотра»).

Если вы хотите предотвратить экспозицию источника просмотра, вы также можете запутать один шаг дальше, указав background-image на URL-адрес вашего сайта, который затем перенаправляет изображение, которое вы хотите. Если вы это сделаете, то единственным способом, которым пользователь будет знать, откуда взялось изображение, является использование Fiddler, Firebug или другого инструмента, который может фактически копаться в DOM или потоке HTTP. Это не будет работать так же, как и CSS-only, но это довольно дешево, так как вы не будете связывать поток на своем сервере, ожидая ответа удаленного сервера.

BTW, если вы также обеспокоены тем, что целевой сайт раздражен тем, что вы заимствуете их контент, имейте в виду, что заголовок HTTP HTTP Referer: позволит целевому сайту указать URL вашего сайта, который «заимствует», изображение. Им будет легко отключить их, если они этого захотят, заблокировав все запросы с вашего сайта. Вы можете, конечно, обойти это (например, запросив страницы у своего собственного клиента на своем сервере), но затем сайт может просто просмотреть ваши IP-адреса и заблокировать вас. Мораль истории: если вы хотите «заимствовать» контент с другого сайта, держите его сдержанным и малообъемным, потому что, если вы привлечете их внимание, вам станет запрещено.

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

+0

Это прекрасное спасибо. Я знаю, что этот вопрос есть, но я пишу этот код, чтобы обеспечить лучшую конфиденциальность. Hotlinking разрешен, но без этого любой, кто просматривает изображение, может видеть учетную запись на удаленном сайте и беспокоить его/ее. Если пользователь выбирает конфиденциальность на удаленном сайте, то это не проблема, но я не могу получить изображение/страницы, не имея его закрытого, поэтому этот вопрос. Он либо закрыт на обоих, либо нет, что нежелательно. – 2009-12-27 02:00:37

0

apache's ProxyPass делает. в IIS, ARR можно добиться того же. или вы можете просто создать страницу, которая загружает изображение, как вы сказали, и выгружает его. но действительно, если скрипт должен был просто перенаправлять, свойства все равно отображали бы окончательный адрес.

Вы могли бы disable right-click on images, но, конечно, это не остановило бы определенного человека.

3

Использование src=mysite.com/redirect/id.jpg в вашем img тега, и служить mysite.com/redirect URL с помощью прокси-серверов для любого другого сайта, вы STEA^H^H^H^Hmashing вверх от.

+0

LOL, это то, что я предполагал, также происходит. –

Смежные вопросы