versión 11 (Modificado)
La seguridad de su servidor Web 4D está basada en los siguientes elementos:
La combinación del sistema de gestión de contraseñas (modo BASIC o modo DIGEST) y del Método de base On Web Authentication,
La definición de un Usuario Web Genérico,
La definición de una carpeta Root HTML por defecto,
La definición de la propiedad "Disponible vía 4DACTION, 4DMETHOD y 4DSCRIPT" para cada método de proyecto de la base.
Nota: La seguridad de la conexión misma puede ser administrada por el protocolo SSL. Para mayor información, consulte la sección Using SSL Protocol.
Sistema de gestión de contraseñas para el acceso Web
Modo BASIC y Modo DIGEST
Puede definir en las preferencias de la base, el sistema de control de acceso que quiere aplicar a su servidor Web. Se ofrecen dos modos de autenticación: Modo BASIC y modo DIGEST (comenzando con la v11). El modo autenticación concierne a la manera como se colecta y procesa la información relativa al nombre de usuario y contraseña.
En modo BASIC, el nombre y la contraseña introducida por el usuario son enviadas sin encriptar en las peticiones HTTP. Este principio no asegura una seguridad total al sistema ya que la información puede ser interceptada y utilizada por terceros.
El modo DIGEST ofrece un nivel mayor de seguridad ya que la información de autenticación es procesada por un proceso unidireccional llamado dispersión (hashing) que hace que su contenido sea imposible de descifrar.
Para el usuario, el uso de un modo de autenticación u otro es transparente.
Notas:
- Por razones de compatibilidad, el modo de autenticación BASIC se utiliza por defecto en las bases 4D convertidas a versión 11 (si la opción "Utilizar contraseñas" fue seleccionada en la versión anterior). Debe activar explícitamente el modo Digest.
- La autenticación Digest es una función de HTTP1.1 y no está soportada por todos los navegadores. Por ejemplo, sólo las versiones 5.0 y superiores de Microsoft Internet Explorer aceptan este modo. Si un navegador no soporta esta funcionalidad envía una petición a un servidor Web cuando se activa la autenticación Digest, el servidor rechazará la petición y devolverá un mensaje de error al navegador.
Ahora usted puede definir, en la caja de diálogo de Preferencias, el sistema de control de acceso que quiere aplicar a su servidor Web. Para hacer esto, en la caja de diálogo de Preferencias, seleccione la página Avanzado del tema Web:
En el área "Contraseñas Web", hay tres opciones disponibles:
Sin contraseñas: ninguna autenticación se lleva acabo para la conexión al servidor Web. En este caso:
- Si existe el Método de base On Web Authentication, se ejecuta y además de $1 y $2, sólo las direcciones IP del navegador y del servidor ($3 y $4) son suministradas, el nombre de usuario y la contraseña ($5 y $6) están vacíos. En este caso, puede filtrar las conexiones en función de la dirección IP del navegador y/o de la dirección IP pedida del servidor.
- Si el Método de base On Web Authentication no existe, las conexiones son aceptadas automáticamente.
Contraseñas con protocolo BASIC: autenticación estándar en modo BASIC. Cuando un usuario se conecta al servidor, aparece una caja de diálogo en su navegador permitiéndole introducir su nombre y su contraseña. Estos dos valores se envían al Método On Web Authentication junto con los otros parámetros de la conexión (dirección y puerto IP, URL...) de manera que usted los pueda procesar.
Nota: En este caso, si el Método de base On Web Authentication no existe, se rechaza la conexión.
Este modo ofrece acceso a la opción Incluir contraseñas 4D que permite utilizar, en lugar de o en adición a su propio sistema de contraseñas, el sistema 4D de contraseñas de la base (definido en 4D).
Contraseñas con protocolo DIGEST: autenticación en modo DIGEST. Como en modo BASIC, los usuarios deben introducir su nombre y contraseña cuando se conectan. Estos dos valores son enviados encripatados al Método de base On Web Authentication con los otros parámetros de la conexión. Usted debe autenticar un usuario utilizando el comando Validate Digest Web Password.
Notas:
- Debe reiniciar el servidor Web para que las modificaciones efectuadas a estos parámetros sean tenidas en cuenta
- Con el servidor Web de 4D Client, recuerde que todos los sitios publicados por los equipos clientes 4D compartirán la misma tabla de usuarios. La validación de los usuarios/contraseñas es llevada a cabo por la aplicación 4D Server.
Modo BASIC: Combinación de contraseñas y del método de base On Web Authentication
Si utiliza el modo BASIC, el sistema que filtra las conexiones al servidor Web de 4D depende de la combinación de dos parámetros:
Las opciones de contraseñas Web en la caja de diálogo de Preferencias,
La existencia del Método de base On Web Authentication.
Estas son las diferentes posibilidades de control de las conexiones:
La opción "Contraseñas con protocolo BASIC" está seleccionada y la opción "Incluir contraseñas 4D" no está seleccionada.
Si existe el Método de base On Web Authentication, se ejecuta y todos sus parámetros son dados. Usted puede filtrar más precisamente las conexiones de acuerdo al nombre de usuario, contraseña, y/o a las direcciones IP del navegador y del servidor Web.
Si el Método de base On Web Authentication no existe, la conexión se rechaza automáticamente y se envía un mensaje al navegador indicando que el método de autenticación no existe.
Nota: Si el nombre de usuario enviado es una cadena vacía y si el Método de base On Web Authentication no existe, se envía al navegador una caja de diálogo de petición de contraseña.
Las opciones "Contraseñas con protocolo BASIC" e "Incluir contraseñas 4D" están seleccionadas.
Si el nombre de usuario enviado por el navegador existe en la tabla de usuarios 4D y la contraseña es correcta, la conexión es aceptada. Si la contraseña es incorrecta, la conexión es rechazada.
Si el nombre de usuario enviado por el navegador no existe en 4D, dos resultados son posibles:
- Si existe el Método de base On Web Authentication, los parámetros $1, $2, $3, $4, $5, y $6 son devueltos. Por lo tanto usted puede filtrar las conexiones de acuerdo con el nombre de usuario, contraseña, y/o las direcciones IP del navegador y del servidor Web.
- Si el Método de base On Web Authentication no existe, la conexión se rechaza.
Modo DIGEST
A diferencia del modo BASIC, el modo DIGEST no es compatible con las contraseñas 4D estándar: no es posible utilizar las contraseñas 4D como identificadores Web. La opción "Incluir contraseñas 4D" está gris cuando se selecciona este modo. Los identificadores de los usuarios Web deben ser administrados de manera personalizada (por ejemplo, vía una tabla).
Cuando el modo DIGEST está activo, el parámetro $6 (contraseña) siempre se devuelve vacío en el Método de base On Web Authentication. De hecho, cuando se utiliza este modo, esta información no pasa por la red como texto claro (no encriptado). Por lo tanto es imperativo en este caso evaluar la petición de conexión con la ayuda del comando Validate Digest Web Password.
El funcionamiento del sistema de acceso al servidor Web 4D se resume en el siguiente diagrama:
Acerca de los robots (nota de seguridad)
Algunos robots (motores de búsqueda, arañas...) recorren los servidores Web y las páginas estáticas. Si quiere que los robots puedan acceder a todo su sitio, puede definir cuáles URLs no pueden acceder.
Para esto, ponga el archivo ROBOTS.TXT en la raíz del servidor Web. Este archivo debe estar estructurado de la siguiente manera:
User-Agent: <nombre> | |
Disallow: <URL> o <comienzo del URL> | |
Por ejemplo:
User-Agent: * | |
Disallow: /4D | |
Disallow: /%23%23 | |
Disallow: /GIFS/ |
"User-Agent: *" significa que todos los robots están afectados.
"Disallow: /4D" significa que los robots no deben acceder a los URLs que comienzan por /4D.
"Disallow: /%23%23" significa que los robots no deben acceder a los URLs que comienzan por /%23%23.
"Disallow: /GIFS/' significa que los robots no deben acceder a la carpeta /GIFS/ ni a las subcarpetas.
Otro ejemplo:
User-Agent: * | |
Disallow: / |
En este caso, los robots no tienen acceso a todo el sitio.
Usuario Web genérico
Puede designar un usuario, previamente definido en la tabla de contraseñas de 4D, como "Usuario Web Genérico." En este caso, cada navegador que se conecta a la base puede utilizar las autorizaciones de acceso y las restricciones asociadas con este usuario. De esta forma puede controlar fácilmente el acceso de los navegadores a las diferentes partes de la base.
Nota: No hay que confundir esta opción, la cual permite restringir los accesos de los navegadores a las diferentes partes de la base (tablas, menús, etc.), con el sistema de control de conexiones del servidor Web, administrado por el sistema de contraseñas y el Método de base On Web Authentication.
Para definir un Usuario Web genérico:
1. En modo Diseño, cree al menos un usuario con el editor de usuarios de la caja de herramientas.
Si quiere puede asociar una contraseña con el usuario.
2. En los diferentes editores de 4D, autorice o restrinja el acceso a este usuario.
3. En la caja de diálogo de Preferencias, elija el tema Web, página Avanzado.
El área "Contraseñas Web" contiene la lista desplegable Usuario Web genérico. Por defecto, el Usuario Web genérico es el Diseñador y los navegadores tienen acceso completo a todas las partes de la base.
4. Elija el usuario en la lista desplegable y valide la caja de diálogo.
Todos los navegadores Web autorizados a conectarse a la base se beneficiarán de las autorizaciones de acceso asociadas al Usuario Web genérico (excepto cuando el modo BASIC y la opción
"Incluir contraseñas 4D" están seleccionados y el usuario que se conecta no existe en la tabla de contraseñas 4D, ver a continuación).
Interacción con el protocolo BASIC
La opción "Contraseñas con protocolo BASIC" no influye en cómo funciona el Usuario Web genérico. Sin importar el estado de esta opción, los privilegios y las restricciones de acceso asociados al "Usuario Web genérico" se aplicarán a todos los navegadores Web que están autorizados para conectarse a la base.
Sin embargo, cuando la opción "Incluir contraseñas 4D" está seleccionada pueden presentarse dos posibles resultados:
El nombre y la contraseña del usuario no existen en la tabla de contraseñas de 4D. En este caso, si la conexión ha sido aceptada por el Método de base On Web Authentication, los derechos de acceso del usuario Web genérico serán aplicados al navegador.
Si el nombre de usuario y contraseña existen la tabla de contraseñas de 4D, el parámetro "Usuario Web genérico" se ignora. El usuario se conecta con sus propios derechos de acceso.
Carpeta raíz HTML por defecto
Esta opción de las Preferencias de la base permite definir la carpeta en la cual 4D buscará las páginas HTML estáticas y semidinámicas, las imágenes, etc., para enviar a los navegadores.
Además, la carpeta raíz HTML define, en el disco duro del servidor Web, el nivel jerárquico sobre el cual no serán accesibles los archivos. Esta restricción de acceso aplica a los URLs enviados a los navegadores Web como también a los comandos del servidor Web tal como SEND HTML FILE. Si un URL enviado a la base por un navegador o si un comando 4D intenta acceder a un archivo ubicado sobre la carpeta raíz HTML, se devuelve un error indicando que el archivo no ha sido encontrado.
Por defecto, 4D define una carpeta raíz HTML llamada WebFolder. Si esta carpeta no existe, la carpeta raíz HTML se crea en el disco en el momento en que se lanza el servidor Web por primera vez.
Si conserva la ubicación por defecto, la carpeta raíz se crea:
con 4D in modo local y 4D Server, al mismo nivel que el archivo de estructura de la base.
con 4D en modo remoto, en el mismo nivel que el archivo .exe de 4D (bajo Windows) o que el paquete de software (bajo Mac OS).
Puede modificar el nombre y la ubicación de la carpeta raíz HTML por defecto en la caja de diálogo de Preferencias (tema Web, página Configuración):
En el área "Raíz HTML por defecto", introduzca la nueva ruta de acceso de la carpeta que quiere utilizar.
La ruta de acceso introducida en esta caja de diálogo es relativa: está establecida a partir de la carpeta que contiene la estructura de la base (4D en modo local o 4D Server) o la carpeta que contiene la aplicación o el software 4D (4D in modo remoto).
Con el fin de asegurar la compatibilidad multiplataforma de sus bases, el servidor Web 4D utiliza convenciones de escritura particulares para describir rutas de acceso. Las reglas de sintaxis son las siguientes:
Las carpetas están separadas por una barra oblicua ("/")
La ruta de acceso no debe terminar con una barra oblicua ("/")
Para "subir" un nivel en la jerarquía de las carpetas, introduzca ".." (dos puntos) antes del nombre de la carpeta
La ruta de acceso no debe comenzar con una barra oblicua ("/") (excepto si quiere que la carpeta raíz HTML sea la carpeta de la base o de 4D Client, ver a continuación).
Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web", ubicada en la carpeta "4DDatabase", introduzca 4DDatabase/Web.
Si quiere que la carpeta raíz HTML sea la carpeta de la base o de 4D Client, pero que el acceso a las carpetas de los niveles superiores esté prohibido, introduzca "/" en el área. Para que el acceso a los volúmenes sea total, deje el área "Raíz HTML por defecto" vacía.
Advertencia: Si no define ninguna carpeta raíz HTML por defecto, se utilizará la carpeta que contiene el archivo de estructura de la base o de la aplicación 4D Client. Tenga cuidado porque en este caso, no hay restricciones de acceso (los usuarios pueden acceder a todos los volúmenes).
Notas:
Cuando la carpeta raíz HTML se modifica en las Preferencias de la base, la caché se borra de manera que no conserva archivos cuyo acceso esté restringido.
También es posible definir dinámicamente la carpeta raíz HTML utilizando el comando SET HTML ROOT. En este caso, la modificación aplica a todos los procesos Web actuales para la sesión de trabajo. La caché de las páginas HTML se borra.
Disponible vía 4DACTION, 4DMETHOD y 4DSCRIPT
Los URLs especiales 4DACTION (modo no contextual) y 4DMETHOD (modo contextual), como también las etiquetas 4DSCRIPT, 4DVAR y 4DHTMLVAR, le permiten activar la ejecución de todo método de proyecto de una base 4D publicada en la Web. Por ejemplo, la petición http://www.server.com/4DACTION/Erase_All provoca la ejecución del método de proyecto Erase_All, si existe.
Este mecanismo presenta un riesgo para la seguridad de la base, en particular si un internauta intencionalmente o por error dispara un método no destinado para ejecución vía Web. Puede evitar este riesgo de tres formas:
Restringiendo el acceso a los métodos de proyecto utilizando el sistema de contraseñas 4D. Inconvenientes: este sistema necesita utilizar las contraseñas 4D y prohíbe todo tipo de ejecución del método (incluyendo utilizando las etiquetas HTML).
Filtrando los métodos llamados vía los URLS utilizando el Método de base On Web Authentication. Inconvenientes: Si la base incluye un gran número de métodos, este sistema puede ser difícil de administrar.
Usar la opción Disponible vía 4DACTION, 4DMETHOD y 4DSCRIPT mostrada en la caja de diálogo de Propiedades del método:
Esta opción se utiliza para designar individualmente cada método de proyecto que puede ser llamado utilizando los URLs especiales 4DACTION y 4DMETHOD, o las etiquetas 4DSCRIPT, 4DVAR y 4DHTMLVAR. Cuando está deseleccionada, el método de proyecto concerniente no puede ser ejecutado utilizando una petición HTTP que contenga un URL o etiqueta especial. Por el contrario, puede ser ejecutado utilizando otro tipo de llamadas (fórmulas, otros métodos, etc.).
Esta opción está deseleccionada por defecto al crea una base. Los métodos que pueden ser ejecutados utilizando los URLs 4DACTION o 4DMETHOD o las etiquetas 4DSCRIPT, 4DVAR y 4DHTMLVAR deben ser indicados de forma específica.
En el Explorador, los métodos de proyecto "disponibles vía 4DACTION, 4DMETHOD y 4DSCRIPT" tienen un icono específico:
Ver también
Método de base On Web Authentication, Método de base On Web Connection, Utilizar el protocolo SSL.