Quy tắc số 1 về bảo mật: Nếu ai đó có quyền truy cập thông tin, họ có quyền truy cập vào thông tin đó
Tautology đó là gây phiền nhiễu, nhưng đó là sự thật. Nếu bạn cấp quyền truy cập cho một cá nhân, họ có quyền truy cập vào dữ liệu. Đối với người dùng, điều này thường có nghĩa là kiểm soát truy cập, nhưng đối với các nhà phát triển ... à ... họ là những người phải viết điều khiển truy cập.
Nếu đây là một vấn đề lớn đối với bạn (và có vẻ như nó là như vậy), hãy xem xét xây dựng bảo mật vào phần mềm của bạn. Một mô hình phổ biến là thiết kế phần mềm bảo mật theo lớp. Ở lớp thấp nhất, một nhóm phát triển đáng tin cậy thiết kế phần mềm quản lý kiểm soát truy cập trần trụi nhất. Phần mềm đó được xác nhận và xác minh bởi càng nhiều người càng tốt. Bất cứ ai thiết kế mã đó đều có quyền truy cập vào mọi thứ, vì vậy niềm tin là điều cần thiết.
Sau đó, các nhà phát triển có thể xây dựng kiểm soát truy cập linh hoạt hơn trên lớp lõi đó. Mã này vẫn phải là V & Vd, nhưng nó không nghiêm ngặt vì bạn luôn có thể dựa vào lớp lõi để bao quát các yếu tố cần thiết.
Các mô hình mở rộng ra bên ngoài.
Phần khó, thực sự là nghệ thuật thiết kế các hệ thống này, là làm thế nào để xây dựng từng lớp để các nhà phát triển có thể tiếp tục phát triển và gỡ lỗi trong khi vẫn cung cấp cho công ty của bạn sự bảo mật mà bạn mong đợi. Cụ thể, bạn sẽ cần phải chấp nhận rằng việc gỡ lỗi đòi hỏi nhiều đặc quyền hơn bạn nghĩ và việc cố gắng khóa nó sẽ dẫn đến một số nhà phát triển rất tức giận.
Là một giải pháp phụ, hãy xem xét việc tạo cơ sở dữ liệu "an toàn" cho mục đích thử nghiệm, nơi các nhà phát triển có thể tách ra tất cả các cơ chế an toàn và thực hiện gỡ lỗi nghiêm trọng.
Cuối cùng, cả bạn và nhà phát triển của bạn cần hiểu một nguyên lý bảo mật chính: Tất cả bảo mật là sự cân bằng giữa bảo mật và khả năng sử dụng. Bạn phải đạt được số dư của mình như một công ty. Hệ thống sẽ không hoàn toàn an toàn và nó sẽ không thể sử dụng được. Sự cân bằng đó thậm chí sẽ di chuyển khi công ty của bạn phát triển và / hoặc nhu cầu đối với các nhà phát triển thay đổi. Nếu bạn cởi mở với thực tế này, bạn có thể giải quyết nó.