Set Up Image Hotlink Protection Pada Nginx

In Linux, Tutorial 650 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


MikroTik Deteksi IP Lokal / Public Indihome
MikroTik Deteksi IP Lokal / Public Indihome
Kecepatan koneksi dan harga Indihome menjadi daya
Mikrotik Duckdns.org Update (New Script)
Mikrotik Duckdns.org Update (New Script)
Entah kenapa script untuk update Dynamic IP
Mengatasi Stiker Whatsapp Yang Tidak Muncul Di Android
Mengatasi Stiker Whatsapp Yang Tidak Muncul Di Android
Wahtsapp baru-baru ini merelease stiker untuk penggunanya,
SSL Gratis Dari LetsEncrypt
SSL Gratis Dari LetsEncrypt
Untuk mendapatkan SSL Ceritificate mungkin tidaklah semurah

Top