Set Up Image Hotlink Protection Pada Nginx

In Linux, Tutorial 1604 views

Beberapa waktu yang lalu aku sempet menulis tentang install LAMP pada Linux Server menggunakan Tuxlite. Nah, webserver yang menggunakan Tuxlite akan lebih bagus performanya apabila menggunakan Nginx yang dikolaborasikan dengan Varnish.

Dan, satu hal permasalahan utama server yang menggunakan Nginx adalah soal rewrite rule dan .htaccess nya.

Pada website berbasis wordpress ada beberapa cara untuk melindungi gambar dengan menlihat seperti di artikel 4 Ways To Prevent Image Theft In WordPress pada situs WPBeginner.

Permasalahan plugin ByRev WP PicShield adalah plugin tersebut menambah beberapa baris perintah pada .htaccess dan sayangnya ini kurang berpengaruh pada server yang berbasih Nginx.

Salah satu cara supaya plugin Picshield berjalan maksimal ketika menggunakan Nginx adalah dengan meng-convert baris perintah plugin tersebut yang terdapat didalam .htaccess dengan menggunakan Convert Apache Htaccess To Nginx.

Kemudian memasukkannya kedalam Nginx konfigurasi pada bagian :

server {
.............................
}

Kode .htaccess ByRev Picshield :

# BEGIN WP-PICShield
# Header always append X-Frame-Options SAMEORIGIN
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .(jpg|jpeg|png|gif)$ [NC]
RewriteCond %{REMOTE_ADDR} !^(127.0.0.1|127.0.0.1)$ [NC]
RewriteCond %{REMOTE_ADDR} !^66.6.(32|33|36|44|45|46|40). [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?(www.yoursite.com|translate.google.com|translate.googleusercontent.com|www.microsofttranslator.com|pinterest.com|tumblr.com|facebook.com|plus.google|twitter.com|googleapis.com|googleusercontent.com|ytimg.com|gstatic.com) [NC]
RewriteCond %{HTTP_USER_AGENT} !(googlebot|msnbot|baiduspider|slurp|webcrawler|teoma|photon|facebookexternalhit|facebookplatform|pinterest|feedfetcher|ggpht) [NC]
RewriteCond %{HTTP_USER_AGENT} !(photon|smush.it|akamai|cloudfront|netdna|bitgravity|maxcdn|edgecast|limelight|tineye) [NC]
RewriteCond %{HTTP_USER_AGENT} !(developers|gstatic|googleapis|googleusercontent|google|ytimg) [NC]
RewriteRule (.*) byrev-wp-picshield.php?key=EKyb-YR1S&src=$1 [L]
</IfModule>
# END WP-PICShield

Setelah diconvert dan disesuaikan dengan syntax Nginx :

if ($uri ~* ".(jpg|jpeg|png|gif)$"){
set $rule_0 1$rule_0;
}
if ($remote_addr !~* "^(127.0.0.1|127.0.0.1)$"){
set $rule_0 2$rule_0;
}
if ($remote_addr !~* "^66.6.(32|33|36|44|45|46|40)."){
set $rule_0 3$rule_0;
}
if ($http_referer !~* "^http(s)?://(www.)?(www.yoursite.com|translate.google.com|translate.googleusercontent.com|www.microsofttranslator.com|pinterest.com|tumblr.com|facebook.com|plus.google|twitter.com|googleapis.com|googleusercontent.com|ytimg.com|gstatic.com)"){
set $rule_0 4$rule_0;
}
if ($http_user_agent !~* "(googlebot|msnbot|baiduspider|slurp|webcrawler|teoma|photon|facebookexternalhit|facebookplatform|pinterest|feedfetcher|ggpht)"){
set $rule_0 5$rule_0;
}
if ($http_user_agent !~* "(photon|smush.it|akamai|cloudfront|netdna|bitgravity|maxcdn|edgecast|limelight|tineye)"){
set $rule_0 6$rule_0;
}
if ($http_user_agent !~* "(developers|gstatic|googleapis|googleusercontent|google|ytimg)"){
set $rule_0 7$rule_0;
}
if ($rule_0 = "7654321"){
rewrite /(.*) /byrev-wp-picshield.php?key=EKyb-YR1S&src=$1 last;
}

Perlu diperhatikan pada baris yang terdapat keterangan www.yoursite.com, apabila url website yang aktif saat ini tidak menggunakan www. sebaiknya dihilangkan saja dari format .htaccess karena jika dibiarkan menggunakan www. maka Nginx server tetap membacanya menggunakan www. sedangkan url tidak menggunakan www. maka yang terjadi semua gambar dalam website tersebut akan diberi watermark yang tentu saja akan dapat mengganggu kenyamanan visitor.

Semoga bermanfaat dan selamat mencoba … kalau ada kekurangan mohon dikoreksi dan dimaafkan ….. 🙂

 

Related Search

Tags: #htaccess #linux #Linux Server #nginx #webserver #website

Install Pi-Hole DNS Blokir Iklan dan Tracker
Install Pi-Hole DNS Blokir Iklan dan Tracker
Pi-Hole merupakan salah satu pelindung user internet
Migrasi VPS Panel dari Tuxlite ke VestaCP
Migrasi VPS Panel dari Tuxlite ke VestaCP
Setelah sekian lama menggunakan Tuxlite akhirnya diputuskan
Cara Cepat Root Unlock STB ZTE B760H Tanpa Bongkar
Cara Cepat Root Unlock STB ZTE B760H Tanpa Bongkar
Mungkin beberapa ada yang pernah berlangganan Indihome
Upgrade PHP 5.6 ke PHP 7.0 Nginx Debian Jessie
Upgrade PHP 5.6 ke PHP 7.0 Nginx Debian Jessie
Sebetulnya sudah agak lama warning untuk upgrade

Top