Güvenlik # 1 numaralı kural: Birinin bilgiye erişimi varsa, o bilgilere erişebilir
Bu totoloji can sıkıcı, ama doğru. Bir bireye erişim verirseniz, verilere erişebilirler. Kullanıcılar için, bu genellikle erişim kontrolü anlamına gelir, ancak geliştiriciler için ... iyi ... onlar erişim kontrolünü yazmak zorunda olanlar.
Bu sizin için önemli bir sorunsa (ve olduğu gibi geliyorsa), yazılımınıza güvenlik sağlamayı düşünün. Yaygın bir desen, güvenli yazılımı katmanlarda tasarlamaktır. En alt katmanında, güvenilir bir geliştirme ekibi erişim kontrolünün en çıplaklığını yöneten bir yazılım tasarlar. Bu yazılım mümkün olduğunca çok kişi tarafından onaylanır ve doğrulanır. Bu kodu tasarlayan herkes her şeye erişebilir, bu yüzden güven çok önemlidir.
Bundan sonra, geliştiriciler bu çekirdek katmanın üstüne daha esnek bir erişim kontrolü kurabilir. Bu kodun hala V & Vd olması gerekir, ancak çok katı değil çünkü gerekli olanları kapsayacak şekilde her zaman çekirdek katmana güvenebilirsiniz.
Desen dışa doğru uzanır.
Gerçekten de, bu sistemleri tasarlama sanatının zor kısmı, her katmanı nasıl inşa edeceğimizdir, böylece geliştiricilerin hala şirketinize beklediğiniz güvenliği sağlarken gelişmeye ve hata ayıklamaya devam edebilmeleri için. Özellikle, hata ayıklamanın , düşündüğünüzden daha fazla imtiyaz gerektirdiğini kabul etmeniz gerekecek ve bunu kilitlemeye çalışmak çok sinirli geliştiricilere yol açacaktır.
Bir yan çözüm olarak, geliştiricilerin tüm güvenlik mekanizmalarını söküp ciddi hata ayıklama yapabilecekleri test amaçlı "güvenli" veritabanları oluşturmayı düşünün.
Sonunda, hem sizin hem de geliştiricilerin güvenliğin temel prensiplerini anlamaları gerekir: Tüm güvenlik, güvenlik ve kullanılabilirlik arasındaki dengedir. Sen gerekir bir şirket olarak kendi denge. Sistem tamamen güvenli olmayacak ve tamamen kullanılamayacak. Bu denge muhtemelen, şirketiniz büyüdükçe ve / veya geliştiricilerin talepleri değiştikçe de değişecektir. Bu gerçeğe açıksanız, bunu ele alabilirsiniz.