Mi objetivo es construir un sistema (PHP + MySQL) donde un usuario tendrá acceso a datos particulares solo cuando haya iniciado sesión localmente (desde una de las computadoras de la oficina con una IP local), y a todos los datos no confidenciales cuando se inicia sesión tanto desde una red local como desde el exterior (host web normal).
Ya tengo el software en ejecución en un servidor web (Centos 5, PHP + MySQL), pero no puedo almacenar ninguna información confidencial, por ejemplo. Costes y otros datos financieros. Y tengo una red privada en mi oficina donde puedo construir cualquier configuración de servidor que necesite (servidor basado en Windows o Linux - se acepta cualquier configuración). Lo que necesito es:
- si un usuario tiene una IP diferente de un rango predefinido, limite el acceso solo a los campos no confidenciales de los datos;
- si un usuario tiene IP desde una lista blanca (red local), conceda el acceso a todos los datos, incluidos los datos confidenciales;
- si un usuario cambia algo desde dentro de una red local, los cambios serán visibles en el exterior de inmediato;
- si un usuario cambia algo desde el exterior (en un servidor público), los cambios también serán visibles en el interior inmediatamente.
Actualmente no sé si crear dos sistemas separados y de alguna manera administrar sincronizar datos entre ellos, o almacenar todos los datos localmente y en los scripts verificar los permisos de los usuarios, o hacer algo diferente. Lo que sí sé es que los datos financieros no pueden almacenarse en el exterior y no se puede acceder a ellos directamente desde el exterior de ninguna manera.
Estaré encantado de recibir ayuda con este problema, incluso con instrucciones generales que pueda investigar.