Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se recomienda seguir estos pasos para proteger las aplicaciones de bases de datos que utilizan Sync Framework. Para obtener más información acerca de la seguridad de las bases de datos, vea los Libros en pantalla de SQL Server Compact y de SQL Server.
Use el principio de permisos mínimos. No otorgue más permisos de los que sean necesarios para realizar una tarea concreta. Por ejemplo, no conceda permisos INSERT para las tablas de base de datos servidor que estén incluidas en una sincronización de solo descarga. Las operaciones de sincronización requieren los permisos siguientes:
Permisos EXECUTE en todos los procedimientos almacenados que usa Sync Framework para leer y escribir en las tablas de metadatos y en las tablas base.
Permisos SELECT, INSERT, UPDATE y DELETE para las tablas de metadatos y para las tablas base que se actualicen durante una sesión de sincronización.
Cuando aprovisione las bases de datos SQL Server que usan SqlSyncProvider, tenga en cuenta las siguientes necesidades de permisos para el aprovisionamiento:
Permisos CREATE TABLE para habilitar la creación de las tablas de metadatos:
scope_infoyscope_config, y las tablas de seguimiento que se crean para cada tabla base.ALTER TABLE para agregar desencadenadores a las tablas base.
Permisos CREATE PROCEDURE para crear los procedimientos que necesita Sync Framework.
Permisos SELECT e INSERT para las tablas
scope_infoyscope_config.Permisos SELECT para las tablas base.
Sync Framework no valida el contenido de los ámbitos que define el conjunto de tablas a sincronizar (con filtros opcionales). Incluya la lógica en sus aplicaciones para comprobar que el ámbito que se envía se corresponde con las tablas que se espera estén en ese ámbito y que los filtros esperados se han aplicado.
Configure los servidores y las bases de datos servidor para que tengan un área expuesta mínima a los ataques. Por ejemplo, si usa un servidor Internet Information Services (IIS) como parte de una arquitectura de n niveles, no habilite el servicio del protocolo de transferencia de archivos (FTP), salvo que lo requiera otra aplicación que use el servidor.
Cifre o proteja con contraseña los datos confidenciales del disco y durante la transmisión. Sync Framework no proporciona cifrado para las conexiones. Hay varias tecnologías que proporcionan cifrado en el nivel de transporte; entre ellas, se incluyen las siguientes tecnologías estándar del sector: Windows Communication Foundation (WCF), Redes privadas virtuales (VPN), Capa de sockets seguros (SSL) y protocolo de seguridad de Internet (IPsec). Se recomienda usar uno de estos métodos de cifrado para las conexiones efectuadas durante la sincronización. Para obtener más información acerca del cifrado, vea la documentación de Windows y SQL Server Compact, así como la documentación de la base de datos servidor o la base de datos del mismo nivel que use.
Use procedimientos almacenados en lugar de SQL insertado para hacer consultas en las bases de datos servidor. Los procedimientos almacenados ayudan a proteger las aplicaciones de las maneras siguientes:
Mediante el uso de procedimientos almacenados, los administradores pueden definir un conjunto conocido de puntos de entrada en la base de datos. Se puede proporcionar a los usuarios acceso a los procedimientos almacenados y no a las tablas subyacentes.
El uso de procedimientos almacenados también fomenta la utilización de parámetros, en lugar de consultas generadas dinámicamente. Esto dificulta los ataques por inyección de código SQL.
Si se pone en peligro una aplicación, la lógica de acceso a datos no se pone necesariamente en peligro.
Valide los datos enviados durante la sincronización. Use los eventos que se desencadenen durante la sincronización para validar los cambios antes de aplicarlos a la base de datos de destino. Para obtener más información sobre los eventos, vea Trabajar con eventos y programar la lógica empresarial.
Establezca una relación de confianza entre los ensamblados locales y los ensamblados remotos en las arquitecturas de n niveles. En escenarios de n niveles, los ensamblados locales y los ensamblados remotos deben generar relaciones de confianza entre sí. El mecanismo para integrar relaciones de confianza está fuera del ámbito de la API de Sync Framework y lo debe controlar la aplicación.
Siga estas instrucciones si utiliza Windows Communication Foundation (WCF) en aplicaciones de n niveles:
Establezca los permisos adecuados en el espacio de nombres de WCF que su servicio utiliza. Cree un nuevo espacio de nombres o asegúrese de que el espacio de nombres predeterminado tiene los permisos adecuados establecidos.
Ejecute el servicio WCF bajo una cuenta dedicada solo con los privilegios necesarios para obtener acceso a las bases de datos implicadas en la sincronización y a los archivos en cola que se utilizan cuando los cambios de sincronización se procesan por lotes.
Utilice un grupo de aplicaciones dedicado para que el servicio WCF aísle los procesos de sincronización de cualquier otro servicio que se esté ejecutando en el servidor de nivel intermedio.
Utilice la limitación de peticiones de WCF para ayudar a evitar los ataques por denegación de servicio (DOS) en el servicio web. La limitación de peticiones controla los recursos que un usuario del servicio puede utilizar.
Sustituya la reserva de direcciones URL de WCF por una reserva restringida. Para obtener más información, vea este artículo de Microsoft.
Para obtener más información, vea la documentación de WCF.
Si usa el seguimiento, tenga en cuenta que los archivos de seguimiento pueden incluir información sobre los equipos cliente y servidor, los datos de la aplicación y los inicios de sesión. No se escriben contraseñas en el archivo de seguimiento. Si está habilitado el seguimiento detallado, cada fila modificada de la base de datos se escribe en el archivo de seguimiento. Contribuya a proteger el archivo de seguimiento usando las listas de control de acceso adecuadas. Para obtener más información sobre el seguimiento, vea Realizar el seguimiento del proceso de sincronización.
Para la sincronización en el cliente y el servidor, establezca explícitamente la propiedad ClientId en la aplicación cliente, si es posible. Si no está establecida la propiedad, Sync Framework asigna un identificador. En este caso, la aplicación cliente necesita acceso al siguiente subárbol del Registro en el servidor: HK_CURRENT_USER\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5. El acceso al subárbol del Registro requiere derechos de administrador, lo que no es recomendable.
Tenga en mente estos problemas si define filtros para tablas que están sincronizadas:
Sync Framework no valida las cadenas SQL que se han especificado para los filtros de ámbito. Los desarrolladores deberían seguir las prácticas recomendadas específicas para la protección contra las cadenas malintencionadas. Para obtener más información, vea este artículo de MSDN.
La seguridad no debe depender del filtrado. La capacidad para filtrar datos basados en el identificador del cliente o del usuario no es una característica de seguridad. Es decir, este enfoque no ayuda a evitar que un cliente o un elemento del mismo nivel lea los datos pertenecientes a otro cliente u otro elemento del mismo nivel. Este tipo de filtrado sólo resulta útil para crear particiones de datos y para reducir la cantidad de datos que se sincronizan.
Vea también
Conceptos
Consideraciones sobre el diseño y la implementación de aplicaciones