Правило № 1 безопасности: если кто-то имеет доступ к информации, он имеет доступ к этой информации
Эта тавтология раздражает, но это правда. Если вы предоставляете доступ к отдельным лицам, они имеют доступ к данным. Для пользователей это обычно означает контроль доступа, но для разработчиков ... ну ... именно они должны писать контроль доступа.
Если это серьезная проблема для вас (и, похоже, так и есть), подумайте о том, как встроить безопасность в свое программное обеспечение. Распространенным примером является разработка безопасного программного обеспечения по уровням. На самом низком уровне команда разработчиков, которым доверяют, проектирует программное обеспечение, которое управляет самым голым из контроля доступа. Это программное обеспечение проверено и подтверждено как можно большим количеством людей. Любой, кто разрабатывает этот код, имеет доступ ко всему, поэтому доверие необходимо.
После этого разработчики могут построить более гибкий контроль доступа поверх этого основного уровня. Этот код все еще должен быть V & VD, но он не такой строгий, потому что вы всегда можете положиться на базовый уровень, чтобы покрыть все необходимое.
Шаблон распространяется наружу.
Сложная часть, а именно искусство проектирования этих систем, заключается в том, как создать каждый уровень, чтобы разработчики могли продолжать разработку и отладку, при этом обеспечивая вашу компанию безопасностью, которую вы ожидаете. В частности, вам нужно будет признать , что отладка требует больше привилегий , чем вы думаете , что должно, и пытаетесь зафиксировать , что вниз приведет к некоторым очень сердитым разработчикам.
В качестве побочного решения рассмотрите возможность создания «безопасных» баз данных для целей тестирования, где разработчики могут разорвать все механизмы безопасности и выполнить серьезную отладку.
В конце концов, и вы, и ваши разработчики должны понять ключевой принцип безопасности: вся безопасность - это баланс между безопасностью и удобством использования. Вы должны найти свой баланс как компания. Система не будет идеально защищена и не будет полностью использована. Этот баланс, вероятно, даже будет изменяться по мере роста вашей компании и / или изменения требований к разработчикам. Если вы открыты для этой реальности, вы можете обратиться к ней.