diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index 2011e32..625f003 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -2070,3 +2070,9 @@ Doğrulama: browser çalışma zamanı kontrolü başarılı, 289 otomatik test API JSON yanıtlarına kamera, mikrofon ve konum izinlerini kapatan `Permissions-Policy` başlığı eklendi; uygulamanın kullanmadığı tarayıcı yetkileri varsayılan olarak sınırlandırıldı ve HTTP testiyle doğrulandı. Doğrulama: 289 test geçti, üretim derlemesi başarılı. + +### 2026-09-06 · Nginx statik güvenlik başlıkları + +Production nginx yapılandırmasına SPA/statik yanıtlar için `X-Content-Type-Options`, `Referrer-Policy` ve `Permissions-Policy` başlıkları eklendi; API dışındaki ilk yükleme yanıtları da aynı temel politikaları taşıyor. + +Doğrulama: 289 test geçti, Vite üretim derlemesi başarılı. Host ortamında nginx binary’si bulunmadığı için `nginx -t` ayrıca container pipeline’ında çalıştırılmalı. diff --git a/nginx.conf b/nginx.conf index cd14e5c..d7ce6b1 100644 --- a/nginx.conf +++ b/nginx.conf @@ -5,6 +5,11 @@ server { root /usr/share/nginx/html; index index.html; + # SPA ve statik dosyalarda API ile aynı temel tarayıcı güvenlik politikaları. + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "no-referrer" always; + add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; + include /etc/nginx/mime.types; # Vite, pdf.js worker'ını .mjs uzantısıyla üretiyor; Debian'ın mime.types # dosyasında mjs yok → application/octet-stream sunuluyordu ve tarayıcı