Поделиться через


Обеспечение безопасности данных

Обновлен: Ноябрь 2007

Приложения, имеющие дело с важными данными или принимающие какие-либо решения в области безопасности, должны хранить эти данные под своим контролем и не должны позволять потенциально вредоносному коду напрямую к ним обращаться. Лучшим способом защиты данных в памяти является объявление этих данных как закрытых или внутренних переменных (область действия ограничена текущей сборкой). Однако следует иметь в виду, что доступ возможен даже к таким защищенным данным.

  • Используя механизмы отражения, код с высоким доверием, способный ссылаться на данный объект, может получать или задавать закрытые члены.

  • Используя сериализацию, код с высоким доверием может эффективно получать и задавать закрытые члены при условии, что он имеет доступ к соответствующим данным в сериализованной форме объекта.

  • Считывание этих данных возможно в режиме отладки.

Убедитесь, что никакие из ваших собственных методов или свойств не открывают непреднамеренно доступ к этим данным.

В некоторых случаях данные могут быть объявлены "защищенными", и доступ к ним ограничен самим классом и производными от него. Однако следует принять следующие дополнительные меры предосторожности, связанные с расширением доступа.

  • Проконтролируйте, какому коду позволено производить наследование от данного класса, разрешив такое наследование исключительно коду текущей сборки либо использовав декларативную безопасность, описанную в разделе Безопасность доступа к методам, чтобы требовать некоторого удостоверения или особых разрешений для возможности наследования от вашего класса.

  • Убедитесь, что во всех производных классах реализована аналогичная защита, либо они являются запечатанными.

См. также

Другие ресурсы

Правила написания безопасного кода