보안 규칙 # 1 : 누군가 정보에 액세스 할 수있는 경우 해당 정보에 액세스 할 수 있습니다
그 긴장은 성가 시지만 사실입니다. 개인에게 액세스 권한을 부여하면 데이터에 액세스 할 수 있습니다. 사용자에게는 일반적으로 액세스 제어를 의미하지만 개발자에게는 ... 액세스 제어를 작성해야하는 사람들입니다.
이것이 당신에게 중요한 문제라면 (그리고 그 소리처럼 들리면) 소프트웨어에 보안을 구축하는 것을 고려하십시오. 일반적인 패턴은 보안 소프트웨어를 레이어로 디자인하는 것입니다. 가장 낮은 계층에서 신뢰할 수있는 개발 팀은 가장 알기 쉬운 액세스 제어를 관리하는 소프트웨어를 설계합니다. 이 소프트웨어는 가능한 많은 사람들이 검증하고 검증합니다. 해당 코드를 디자인하는 사람은 누구나 모든 것에 액세스 할 수 있으므로 신뢰가 필수적입니다.
그 후 개발자는 해당 핵심 계층 위에보다 유연한 액세스 제어를 구축 할 수 있습니다. 이 코드는 여전히 V & Vd 여야하지만 필수 사항을 다루기 위해 항상 코어 계층에 의존 할 수 있기 때문에 엄격하지는 않습니다.
패턴이 바깥쪽으로 확장됩니다.
어려운 부분, 실제로 예술 이 시스템 설계는 아직도 당신이 기대하는 보안 기업을 제공하면서 개발자는 개발을 계속하고 디버그 할 수 있도록 각 레이어를 구축하는 방법이다. 특히, 디버깅이 동의해야합니다 요구 당신이해야한다고 생각하고, 매우 화가 개발자가 발생합니다 그 아래를 잠그면보다 더 많은 권한을.
부수적 인 솔루션으로 개발자가 모든 안전 메커니즘을 제거하고 심각한 디버깅을 수행 할 수있는 테스트 목적으로 "안전한"데이터베이스를 만드는 것이 좋습니다.
결국, 개발자와 개발자 모두 주요 보안 원칙을 이해해야합니다. 모든 보안은 보안과 유용성의 균형입니다. 당신은 해야한다 회사로 자신의 균형을. 시스템은 완벽하게 안전하지 않으며 완벽하게 사용할 수 없습니다. 회사가 성장하거나 개발자에 대한 요구가 변화함에 따라 이러한 균형이 달라질 수 있습니다. 이 현실에 개방적이라면이를 해결할 수 있습니다.