WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

[РЕШЕНО 99%] как запретить хотлинки на изображения с определенного сайта

на будущее - везде в htaccess перед такими знаками к примеру [NC] - должен быть один пробел, для крассоты ставять несколько, потом в логах появляется ошибку - тут коды тоже с двумя и более пробелами и мне не было времени исправлять
Теперь пустой реферер и реферер с выбраного сайта не сможет не посмотреть и не скачает по ссылке файл пока сам не зайдет на страницу ИСТОЧНИКА

RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} .*\.(jpeg|jpg|gif|png)$
RewriteCond %{REQUEST_URI} \.(jpeg|jpg|png|gif)$

RewriteCond %{HTTP_REFERER} ^$ [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.club/  [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.com/  [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.online/  [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?плохой\.xxx/ [NC]
# пропустим поисковиков с USER AGENT
RewriteCond %{HTTP_USER_AGENT} !(googl|google|googlebot|bingbot|yahoo|yandex)

RewriteRule .* - [F]

Все классно но не знаю как показать заглушку - вместо этого у конкурента выдает ошибку

нужно условие

если ( без рефера ИЛИ плохой сайт И картинка И полный урл И пытаемся скачать с урл на плохом сайте){
	RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$     [F]
	// картинка на прямую не посмотреть - выбрасывает на 404 
	// картинку не скачать
	// КАК СДЕЛАТЬ ЧТОБ КАЧАЛАСЬ ЗАГЛУШКА 
} иначе если (без рефера ИЛИ плохой сайт И картинка ){
	RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://moi.site/zaglushka.tif 
	// показать заглушку 
}

Была задача :

1 вписать сайт в черный список
2 чтоб при просмотре на нем отображались не картинки, а заглушка
3 чтоб при прямом переходе\скачивании картинки "http://site.ru/kartinka.png/" срабатывал или редирект на главную, а если качает, то не изображение а заглушку?
4 запретить доступ источникам без REFERER

Знаю что такая реализация есть через REFERER, но как сделать не знаю, может кто сталкивался , ПОСОВЕТУЙТЕ !

зашел как-то в яндекс посмотреть внешние ссылки, а там уже ~10 000 ссылок на кртинки из моих галерей, причем с просмотренном и скачиваниемю и все эти ссылки только с 3 сайтов. почему бы не забанить mosking

В будущем, сам не сделаю , буду заказывать, чтоб доступ к убитым\сжатым картинкам был у всех, а оригиналы чтоб мог скачивать только рефере моего сайта (думаю можно через кукисы реализовать). Уже такое видел , но как реализовать не знаю.

Решил п.п 1 и 2 так

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?tttt\.club/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC]
RewriteRule .*\.(jpeg|jpg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

как решить 3 пункт
по поводу пункта 4 — ссылки на загрузку выглядят таким образом

http:// moikonkurent.club /?d=http%3A%2F%2F moisait.com %2Fwp-content%2Fuploads%2F2016%2F07%2Fkartinka.png

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

есть ещё более грамотная запись (я так думаю)

###############################
# ultimate hotlink protection #
###############################

# disable directory browsing
# uncomment this option to protect access to directories
# Options -Indexes

# enable the following of symlinks
# uncomment this option if hotlink protection fails to work
# Options +FollowSymLinks

# verify presence of mod rewrite
<IfModule mod_rewrite.c>

 # enable the rewrite engine
 RewriteEngine on

 # check that file exists
 RewriteCond %{REQUEST_FILENAME} -f

 # check for requested file types
 # include additional file types here
 RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$                [NC]

 # allow blank referrer requests
 RewriteCond %{HTTP_REFERER}     !^$

 # allow all requests from your domain
 # edit the domain to match your own
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+\.)?domain\.      [NC]

 # allow all requests from your ip address
 # edit the ip address to match your own
 RewriteCond %{HTTP_REFERER}     !^https?://123\.123\.123\.123(.*)$ [NC]

 # additional site access
 # include additional sites here replace domain names and or 
 # remove unnecessary lines or add new lines for more sites
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+\.)?domain_01\.   [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+\.)?domain_02\.   [NC]
 RewriteCond %{HTTP_REFERER}     !^https?://([^.]+\.)?domain_03\.   [NC]

 # search engine access
 # include or remove search engines feed readers and other sites
 RewriteCond %{HTTP_REFERER}     !search\?q=cache                   [NC]
 RewriteCond %{HTTP_REFERER}     !google\.                          [NC]
 RewriteCond %{HTTP_REFERER}     !yahoo\.                           [NC]

 # allow access to all requests for your anti hotlink image
 # to serve an image instead of delivering a 403 error
 # uncomment the next line and edit the path and file name
 # RewriteCond %{REQUEST_URI}    !^/hotlink\.jpg$                   [NC]

 # deliver the hotlink image for all requests for the listed files
 # protect additional file types by editing the list below
 # if you are serving a file instead of a 403 
 # uncomment the next line and edit the path and file name
 # RewriteRule \.(gif|jpe?g?|png)$ http://domain.tld/hotlink.jpg    [R,NC,L]

 # return a 403 error when any of the following file types is requested
 # you can protect additional file types by editing the list below
 RewriteRule \.(gif|jpe?g?|png)$                                  - [F,NC,L]

# close the module container
</ifModule>
1
kolshix
288
9 месяцев назад

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация