Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для защиты приложений базы данных, основанных на Sync Framework, рекомендуется предпринять следующие шаги. Дополнительные сведения об обеспечении безопасности баз данных см. в электронной документации по SQL Server Compact и электронной документации по SQL Server.
Пользуйтесь принципом наименьшего разрешения. Не предоставляйте больше разрешений, чем требуется для выполнения конкретной задачи. Например, не предоставляйте разрешения INSERT таблицам, которые участвуют в синхронизации только с загрузкой. Для операций синхронизации необходимы следующие разрешения.
Разрешения EXECUTE для всех хранимых процедур, которые используются платформой Sync Framework для чтения и записи таблиц метаданных и базовых таблиц.
Разрешения SELECT, INSERT, UPDATE и DELETE для таблиц метаданных и всех базовых таблиц, которые будут обновляться в ходе сеанса синхронизации.
При провизионировании базы данных SQL Server, использующей поставщик SqlSyncProvider, необходимо помнить о следующих требованиях к разрешениям для провизионирования.
Разрешения CREATE TABLE для возможности создания таблиц метаданных
scope_infoиscope_config, а также таблиц отслеживания, создаваемых для всех базовых таблиц.ALTER TABLE — для добавления триггеров к базовым таблицам.
Разрешения CREATE PROCEDURE для создания процедур, необходимых платформе Sync Framework.
Разрешения SELECT и INSERT для таблиц
scope_infoиscope_config.Разрешения SELECT для базовых таблиц.
Платформа Sync Framework не выполняет проверку содержимого областей, определяющих набор синхронизируемых таблиц (с необязательными фильтрами). Включает в приложения логику для проверки соответствия отправляемой области таблицы, которая должна быть включена в эту область, и для подтверждения применения ожидаемых фильтров.
Настройку сервера и базы данных сервера следует производить таким образом, чтобы сократить контактную зону до минимума. Например, если сервер служб IIS используется в составе многоуровневой архитектуры, не включайте службу протокола передачи файлов (FTP) до тех пор, пока она не потребуется другим приложениям, использующим этот сервер.
Конфиденциальные данные, хранящиеся на диске или передаваемые по каналам связи, должны быть зашифрованы или защищены паролем. Службы Sync Framework не обеспечивают шифрование соединений. Ряд других технологий позволяет реализовать его на транспортном уровне. Сюда входят следующие стандартные технологии, применяемые в отрасли: Windows Communication Foundation (WCF), виртуальные частные сети (VPN), протоколы SSL и IPsec. Для соединений, создающихся во время синхронизации, рекомендуется пользоваться одним из этих методов шифрования. Дополнительные сведения о шифровании см. в документации по Windows и SQL Server Compact, а также в документации по используемой серверной или одноранговой базе данных.
Для запросов к базам данных сервера пользуйтесь хранимыми процедурами, а не встроенным SQL. Хранимые процедуры обеспечивают безопасность приложения следующими способами.
С помощью хранимых процедур администратор может определить хорошо известный набор точек входа в базу данных. Пользователям может предоставляться доступ к хранимым процедурам, а не к базовым таблицам.
Кроме того, использование хранимых процедур поощряет применение параметров вместо динамически создаваемых запросов. Это затрудняет проведение атак путем внедрения кода SQL.
Если безопасность приложения нарушается, это не обязательно означает нарушение безопасности системы доступа к данным.
Проверяйте данные, отправленные во время синхронизации. При помощи событий, вызываемых во время синхронизации, проверьте изменения, прежде чем применить их к целевой базе данных. Дополнительные сведения о событиях см. в разделе Как работать с событиями и бизнес-логикой программы.
Установите доверительную связь между локальными сборками и удаленными сборками в многоуровневой архитектуре. В многоуровневых сценариях локальные и удаленные сборки должны находиться в доверительных отношениях. Механизм установления отношений доверия не относится к API-интерфейсу Sync Framework, и ответственность за обеспечение его работы лежит на приложении.
Если для многоуровневых приложений используется Windows Communication Foundation (WCF), выполните следующие рекомендации.
Установите необходимые разрешения на пространство имен WCF, используемое службой. Создайте новое пространство имен или убедитесь, что заданы необходимые разрешения на пространство имен по умолчанию.
Запускайте службу WCF с выделенной учетной записью, которая обладает только правами доступа, необходимыми для доступа к базам данных, участвующим в синхронизации, и файлам буферизации, используемым в случае, когда изменения помещаются в пакеты.
Используйте для службы WCF выделенный пул приложений, чтобы изолировать процессы синхронизации от всех остальных служб, работающих на сервере среднего уровня.
Используйте регулирование WCF для защиты веб-службы от атак типа «отказ в обслуживании» (DOS). Регулирование ограничивает ресурсы, расходуемые пользователем или службой.
Заменяет резервирование URL-адресов WCF по умолчанию ограниченным резервированием. Дополнительные сведения см. в следующей статье базы знаний Майкрософт.
Дополнительные сведения см. в документации по WCF.
Если используется трассировка, учтите, что файлы трассировки могут содержать данные о компьютерах сервера и клиента, данные приложений и имена входа. (пароли в файл трассировки не записываются). Если включена подробная трассировка, каждая измененная строка из базы данных записывается в файл трассировки. Помогает защитить файл трассировки соответствующими списками управления доступом. Дополнительные сведения о трассировке см. в разделе Как трассировать процесс синхронизации.
При синхронизации клиента и сервера по возможности явно устанавливайте свойство ClientId в клиентском приложении. Если оно не установлено, службы Sync Framework присваивают идентификатор автоматически. В этом случае клиентское приложение должно иметь доступ к следующему кусту реестра на сервере: HK_CURRENT_USER\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5. Для доступа к кусту реестра требуются права администратора. Это не рекомендуется.
При определении фильтров для синхронизируемых таблиц необходимо учитывать следующие соображения.
Платформа Sync Framework не выполняет проверку SQL-строк, указанных для фильтров областей. Разработчик должен придерживаться рекомендаций по защите от вредоносных строк кода. Дополнительные сведения см. в статье базы знаний MSDN.
Не полагайтесь на фильтрацию для обеспечения безопасности. Возможность фильтрации данных по идентификатору клиента или пользователя не предназначена для обеспечения безопасности. Иными словами, такой подход не может использоваться для предотвращения чтения одним клиентом или узлом данных, принадлежащих другому клиенту или узлу. Этот тип фильтрации предназначен только для секционирования и сокращения объема данных, подлежащих синхронизации.