Zapobiegaj hotlinkowaniu obrazów w wyszukiwarce obrazów Google

Niedawno Google wprowadziło nowy interfejs wyszukiwania obrazów. Od 25 stycznia 2013, pełnowymiarowe obrazy są wyświetlane bezpośrednio w Google, bez wysyłania odwiedzających do strony źródłowej. Natknąłem się na stronę, która najwyraźniej opracowała wyrafinowane podejście, aby uniemożliwić użytkownikom chwytanie obrazów z Google poprzez wprowadzenie jakiegoś znaku wodnego dynamicznie . Aby to zobaczyć, wyszukaj w nowym interfejsie wyszukiwania obrazów Google obrazy według "fansshare.com". ten link powinien działać: Google Image Search . Jeśli nie, po prostu wpisz "site:fansshare.com" w wyszukiwarce Google. Pamiętaj jednak, aby korzystać z nowego interfejsu wyszukiwania.

Jak fansshare.com osiągnąć to? Nie mogłem tego rozgryźć ...

Update:

Fansshare.com dodaje GET param do wszystkich swoich adresów URL obrazów, jak ?rnd = 69 . Przykładowy obrazek URL: http://fansshare.com/media/content/570_Jessica-Biel-talks-Kate-Beckinsale-Total-Recall-fight-5423.jpg?rnd=62

Ten adres URL obrazu działa przez kilka wywołań lub sekund, po czym następuje przekierowanie do buforowanego obrazu ze znakiem wodnym: http://fansshare.com/cached/?version=media/content/570_Jessica-Biel-talks-Kate-Beckinsale-Total-Recall-fight-5423.jpg&rnd=5810

Edit:

W końcu udało nam się w pełni naśladować ochronę Hotlinku FansShare i opublikowaliśmy nasze ustalenia w następującym obszernym poście na blogu:

Http://pixabay.com/en/blog/posts/hotlinking-protection-and-watermarking-for-google-32/

Author: Simon Steinberger, 2013-02-10

5 answers

Jest rozwiązanie, ale tak jak inne rozwiązania, to do Google należy zinterpretowanie go jako maskowanie i banowanie do ich woli. Jest to długi i prawdopodobnie będzie potrzebował dalszych majsterkowania, aby pracować dla twojej sprawy. (Z góry przepraszam za długość)

Setup

Dla przykładu powiedzmy, że:

  • strona: www.thesite.com i
  • Baza obrazów: images.thesite.com

(Ale baza ImageURL mogłaby być www.thesites.com/wp-content/uploads)

Target

Naszym celem jest, aby tak było, (1) Pełnowymiarowy obraz jest wyświetlany tylko ze znakiem wodnym / nakładką, jeśli jest wymagany z wyszukiwarki google images I (2) nie psuć wcześniej działających rzeczy.

Rozwiązanie

Więc rozwiązanie teoretyczne jest następujące.

1) Sprawdź User-Agent i jeśli zawiera Googlebot, podaj adres URL "trap". Adres URL pułapki jest bieżącym adresem URL obrazu, ale nieznacznie zmienionym, dzięki czemu można traktuj to inaczej, więc zamiast obecnej normy:

http://images.thesite.com/wallpapers/awesome.jpg

Powinieneś wydrukować dla Googlebotów:

http://cacheimages.thesite.com/wallpapers/awesome.jpg

(gdzie cacheimages jest cokolwiek chcesz)

2) teraz danie główne; powinieneś być w stanie kierować żądania do http://cacheimages.thesite.com/ i mieć skrypt, który działa następująco:

 If the request comes from a bot (check user-agent headers)
     Then serve the normal image without watermark
 Else (if the request seems to be from a normal user)
     Then check the referer: If it's from google (but NOT http://www.google.com/blank.html)
          Redirect to the Post of the image (Note 1.)
     Else if the refer is your site
          Show the raw normal image
     Else (any other referer, including http://www.google.com/blank.html)
          Show watermarked image (Note 2.)

Uwaga 1: dzieje się tak, gdy ludzie klikną "Zobacz oryginalny obraz" lub sam obraz

Uwaga 2 : stanie się tak kiedy ludzie próbują zobaczyć Pełnowymiarowy obraz z wyników wyszukiwania obrazów google (i jeśli w jakiś sposób dotrą do adresu URL pułapki obrazu)

3) Możesz HTTP przekierować stare obrazy do nowej bazy ImageURL, jeśli agent użytkownika jest Googlebots, więc sztuczka nakładka / znak wodny zaczyna działać na starych obrazach szybciej (lub nawet użyj narzędzi Google dla webmasterów, jeśli używasz subdomen dla obrazów) i na pewno zachowasz sok SEO.

Dalsze działania

Możesz zrobić więcej zmian, jeśli chcesz być poważny.
  1. zamiast wyświetlania przekierowania ze znakiem wodnym do bardziej dynamicznego adresu url http://cacheimages.thesite.com/preview?p=/wallpapers/awesome.jpg&r=23535 lub bardziej nowoczesne wykorzystanie nagłówków HTTP bez indeksowania: X-Robots-Tag: noindex
  2. oczywiście buforuj obrazy ze znakiem wodnym
  3. Sprawdź Accept nagłówki http dla przypadków, o których nie myślałem i odpowiednio obsłuż obraz lub przekieruj obraz post.

Uwaga

Możesz też pomyśleć o ruchu międzynarodowym więc zamiast {[12] } chcesz sprawdzić google.[a-z-\.]+/

Wniosek

To może być dostosowane do każdego systemu, zrobiłem go dla takiego, który ma obrazy na subdomenie, więc prawdopodobnie nie będzie dokładnie taki sam dla innych systemów, takich jak wordpress itp. Jestem również pewien, że Google wprowadzi zmiany w wyszukiwaniu obrazów w ciągu następnych kilku miesięcy, aby rozwiązać ten problem.

Nieprzetestowaną przykładową realizację pomysłu można znaleźć na Github .

Wyłączenie odpowiedzialności

To nie zostało dokładnie przetestowane i możesz zostać zbanowany, to jest tylko dla celów badawczych i edukacyjnych. Nie mogę być pociągnięty do odpowiedzialności za jakiekolwiek szkody itp.

 6
Author: Sev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-16 12:24:56

Kilka nowych wtyczek wordpress są dostępne do adresowania Google i Bing hotlinking obrazów:

Http://wordpress.org/extend/plugins/imaguard / http://wordpress.org/extend/plugins/google-break-dance/

 2
Author: user2060344,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-11 05:53:47

Cześć oto nowa wtyczka do rozwiązania tego problemu na WordPress

Https://github.com/mompracem/direct-images-redirect

Zamiast używać obrazów ze znakami wodnymi, po prostu przekierowuje użytkownika, który próbuje uzyskać dostęp do obrazu bezpośrednio do postu lub strony, do której został pierwotnie dołączony.

Jest to nowa wtyczka więc może mieć jakiś błąd, proszę przetestować i zgłosić problemy na github dziękuję

 0
Author: unfulvio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-23 20:25:29

Hm ... o wysyłaniu innego obrazu lub adresu url do Googlebotów, w porównaniu ze zwykłymi użytkownikami nie jest w porządku ! Obrazy powinny być ciche-przekierowane ().

Dla blogów Wordpress, WP-PICShield myślę, że to jedna z najlepszych opcji !

  • Obsługa Buforowania,
  • Pass-Through Images Request
  • Ochrona przed IFRAME,
  • Custom image transprency
  • własny znak wodny PNG
  • Nazwa hosta nad obrazami jako adres url i / lub kod QR!!!
  • Redirect w 2011 roku został wybrany do Izby Gmin.]}
  • Ochrona przed nieautoryzowanymi żądaniami
  • unikaj błędów pamięci dla dużych plików
  • Pozwól Tłumaczom Online
  • Zezwól na przycisk share dla serwisów społecznościowych: Facebook, Pinterest, Thumblr, Twitter, Google Plus
  • pozwól Wordpress przez RPC i Twitter przez OAuth
  • Manual Clear Cache script avoid PHP limit execution
  • Zezwól na listę zdalnych adresów ip
  • + + + CDN Tools and helps

I nie tylko...

 0
Author: ByREV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-24 01:59:33

W końcu znalazłem sposób, aby zatrzymać Google Image Search od hotlinkowania moich zdjęć bez użycia wtyczki. Mam nadzieję, że pomoże to każdemu, kto nadal ma do czynienia z następstwami tej całkowicie złej decyzji Google.

 0
Author: jonathantimar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-31 00:59:10