Güvenli Geliştirme
Özel önizlemede HTTPS, kimlik ve yetkiyi ayırmak
Geliştirme sürümünü internete açmadan incelemek ve yönetim ekranını yalnız yetkili kişiye göstermek için kullandığımız kararlar.
Corvnet teknik notları · · 2 dk okuma · Yayın ilkeleri
Şifreli bağlantı tek başına yetki değildir
Bir önizleme sayfasının HTTPS kullanması, sayfayı kimin görebileceği sorusunu tek başına cevaplamaz. Önce hedef kitleyi belirliyoruz: geliştirme ekibi, şirket sahibi veya dışarıdan bir inceleyici. Sonra ağ erişimi ve uygulama içi yetkiyi bu kapsama göre tasarlıyoruz.
Kendi site çalışmamızda önizlemeyi özel ağ içinde tuttuk. Pazarlama sayfasını görebilen herkesin form kayıtlarını da görebilmesini kabul etmedik. Ziyaretçi içeriği ile kişisel veri içeren yönetim ekranı için ayrı yetki kontrolü gerekiyor.
Kimlik bilgisinin nereden geldiğini doğrulayın
Tailscale Serve, özel ağdan gelen kullanıcı isteklerine kimlik başlıkları ekleyebilir ve aynı isimli istemci başlıklarını güvenlik amacıyla temizler. Bu modelde uygulama doğrudan dış ağa açılırsa, güvenilen ara katmanı atlayan istekler ayrıca risk oluşturur. Bu yüzden arka uç erişimi de sınırlandırılmalıdır.
Bizim uygulamamızda yönetim yetkisi, izin verilen hesap ile özel geçidin doğruladığı isteğin birlikte kontrol edilmesine dayanır. Başlık adını bilmek yetki sağlamaz. Kimliği olmayan, yanlış hesaptan gelen veya güvenilen geçidi doğrulayamayan istekler kapalı kalır.
Özel ağ üyeliği ile yönetici rolünü karıştırmayın
Küçük bir ekipte aynı kişi hem siteyi inceleyebilir hem talepleri yönetebilir. Bu durum iki izni tek bir kurala dönüştürmek için yeterli neden değildir. Zamanla bir tasarımcıya, tedarikçiye veya test cihazına erişim verildiğinde kişisel veri ekranı da yanlışlıkla açılabilir.
Başlangıçta tek yetkili hesapla çalışmak, bir rol modelinin ilk sürümüdür. Yeni kullanıcı eklenecekse sahip, görev ve kapsam açıkça belirlenmelidir. Genel bir “ağa bağlıysa yönetici” yaklaşımı yerine ihtiyaç duyulan işlem yetkisi tanımlanır.
Yönetim değişikliklerini de doğrulayın
Okuma izni olan bir ekranın güncelleme istekleri ayrıca korunmalıdır. Durum değiştirme ve iç not kaydetme işlemlerinde beklenen kaynak, veri biçimi, alan sınırları ve güncellenen sürüm kontrol edilir. İki açık sekmenin aynı kaydı eski bilgiyle ezmesi önlenmelidir.
Talep akışımızda her kaydın sürüm numarası vardır. Eski sürümle gönderilen güncelleme reddedilir; operatör kaydı yeniden açar. İşlem geçmişinde durum ve işlem zamanı tutulur. Böylece başka bir oturumun değişikliğini sessizce kaybetmek yerine uyuşmazlık görünür olur.
Olumlu ve olumsuz senaryoları birlikte test edin
Yalnız kendi hesabınızla ekranın açıldığını görmek yeterli değildir. Yetkisiz isteğin kapanması ve beklenmeyen bir istek biçiminin veri değiştirmemesi de kabul ölçütüdür.
- Yetkili hesap kayıtları okuyabiliyor mu?
- Kimliği olmayan veya yanlış hesaptan gelen istek reddediliyor mu?
- İstemcinin gönderdiği sahte başlıklar yetki kazandırıyor mu?
- Farklı kaynaktan yapılan değişiklik isteği reddediliyor mu?
- Eski sürüm numarasıyla kayıt ezilebiliyor mu?
Kamuya geçerken erişim modelini yeniden değerlendirin
Önizlemenin kamuya açılması yalnız domain değişikliği değildir. Dış geçit, uygulama kimliği, gizlilik metinleri ve yönetim ekranının ulaşılabilirliği yeniden ele alınır. Bu yazı, iç altyapı kararlarımızı anlatır; her projeye aynı ağ çözümünü öneren bir reçete değildir.
Mevcut sisteminiz için kapsam değerlendirmesi
Cihazlarınızı, çalışma koşullarınızı ve hedefinizi paylaşın. Uygun hizmet kapsamını ve doğrulama adımlarını değerlendirelim.