Yazılım Pratikleri

Nginx Üzerinde 403 Uyarı Sayfasını Tarayıcı Diline Göre Özelleştirme

Yetkisiz kullanıcıların projelerinizde bulunan bazı sayfa veya dosyalara erişimin kısıtlanması güvenlik için önemli bir unsurdur. Özel erişim izinleri ile birlikte kullanıcılar yetkisi olmayan sayfaları incelemek istediğinde 403 uyarısı ile karşılaşır. Tabii ki 403 sayfasının tasarımının dikkat çekici olması ziyaretçilerin sitenizi hatırlamasını sağlayabilir ve erişimi olduğu sayfaları ziyaret etmesini tetikleyerek daha uzun sürelerde sayfalarınız arasında gezinebilir. Eğer birden fazla ülkeden ziyaretçi alıyorsanız ve özel bir engelleme kullanıyorsanız aşağıdaki kodlar sayesinde tarayıcı diline göre 403 sayfalarınızın tasarımını değiştirerek daha dikkat çekici bir uyarı sayfası oluşturabilirsiniz.

Örnek NGIX Konfigürasyonu

server {
	server_name   domainadresiniz.com;
	
	#Tarayıcı dilini tanımla
	if ( $http_accept_language ~ ^(..) ) {
        set $langbrows $1;
    }

    error_page 403 /403.html;
	
	location / {
		.....
		
		proxy_set_header  X-Real-IP $remote_addr;
		proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header  Host $http_host;
		proxy_set_header  CF-IPCountry $http_cf_ipcountry;

		error_page 403 /403.html;
		
		#TR dışında IP'den erişilirse
		if ($http_cf_ipcountry != TR) {
		  return 403;
		} 
		
		proxy_pass http://localhost:3051;
		
		......
	}
	
	location /403.html {
		ssi on;
		internal;
		auth_basic off;
		root      /var/www/html;
		allow all;
    }

}

Örnek 403.HTML İçeriği

Aşağıdaki örnekte de görebileceğiniz üzere Nginx’in SSI (Server Side Includes) modül desteği ile if/then/else filtreleri uygulayabilirsiniz.

<!--# if expr="$langbrows = tr" -->
Erişim engeli! - domainadresiniz.com - Markanız
<!--# else -->
Access is restricted! - domainadresiniz.com - Markanız
<!--# endif -->

Subscribe
Bildir
guest
0 Yorum
En Yeniler Eskiler
Inline Feedbacks
View all comments