Seguridad
Las once reglas que impone Postgres, explicadas en lenguaje sencillo.
La aplicación comprueba los permisos para que la interfaz tenga sentido. La base de datos los vuelve a comprobar para que realmente se cumplan. Cada una de las reglas siguientes la impone Postgres (políticas de seguridad a nivel de fila, permisos por columna, triggers o restricciones de comprobación) y tiene una prueba de RLS que intenta romperla, incluidas escrituras que deben fallar.
Estas reglas se cumplen en el modo local y en cualquier otro lugar donde Portline funcione sobre su base de datos. El modo demo no tiene base de datos; aplica las mismas reglas en la aplicación.
- Su plan no lo puede editar usted. El plan, el estado, los puestos y el fin del periodo solo los puede escribir el rol de servicio. Un propietario que ejecute
update pl_subscriptions set plan = 'scale'obtiene un error. - Las áreas bloqueadas no muestran nada. Si el plan no incluye un área, sus filas no se devuelven. Un espacio de trabajo Starter lee cero citas de muelle, no una página de error con datos detrás.
- Los lectores no escriben nada. Cada inserción y actualización comprueba el nivel de edición. Se rechaza que un lector inserte una cita de muelle.
- Las revisiones de documentos requieren permiso de aprobación y quedan firmadas. Solo los administradores y el propietario pueden verificar o rechazar un documento, y la base de datos marca la revisión con el id de quien la realiza. Un despachador que intente marcar un documento como verificado falla; cuando lo hace un administrador,
reviewed_byse establece con ese administrador, independientemente de lo que se haya enviado. - Las notificaciones solo se pueden marcar como leídas. Puede establecer
read_aten sus propias notificaciones y nada más. Se rechaza reescribir el título o el enlace de una notificación. - El registro de auditoría no se puede falsificar ni editar. Las filas de auditoría solo se escriben a nombre de quien llama, y nadie puede actualizarlas ni eliminarlas.
- Nadie se asciende a sí mismo. No puede cambiar su propio rol, nadie se convierte en propietario a través de la aplicación y los administradores no pueden modificar al propietario. Un despachador no puede cambiar el rol de nadie.
- Los espacios de trabajo están aislados. Cada política se basa en la pertenencia. Un miembro de un espacio de trabajo lee cero filas de otro.
- Un espacio de trabajo caducado es de solo lectura. Las ediciones requieren una suscripción
active,trialingograce. Tras la caducidad, todas las escrituras fallan. - Un conductor no puede registrar la salida antes de registrar la entrada. Una restricción de comprobación exige una hora de entrada antes de una hora de salida, y que la salida sea posterior a ella.
- Los mensajes se publican a su nombre. El autor de un mensaje debe ser quien llama. Publicar en nombre de otra persona falla.
También en la aplicación
- Cada acción del servidor valida su entrada y vuelve a comprobar el nivel de permiso antes de tocar los datos.
- Las redirecciones tras el inicio de sesión solo van a rutas del mismo sitio, de modo que un enlace
?next=manipulado no puede enviarle a otro lugar. - Cualquier URL de salida que pueda proporcionar un usuario (webhooks, endpoints de transportistas) pasa por un filtro de protección que rechaza direcciones que no sean https, así como direcciones privadas e internas.
- El modo demo se niega a iniciarse en producción y no realiza solicitudes de salida.