elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Intranet PHP+MySQL. Duda con los permisos de usuarios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Intranet PHP+MySQL. Duda con los permisos de usuarios  (Leído 4,664 veces)
Antonio_1987

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Intranet PHP+MySQL. Duda con los permisos de usuarios
« en: 1 Mayo 2015, 22:03 pm »

Hola con todos. Estoy empezando a crear una Intranet en PHP y MySQL, pero tengo una duda que no me deja seguir adelante: se trata de la creación de usuarios y los permisos que éstos tengan en la Web.

La PC servidor tendrá el CentOS como SO (Apache y MySQL, como les mencioné). Es una web pequeña (casi un piloto) así que usaré plantillas de bootstrap para el diseño.

El tema es al definir los usuarios y sus permisos. En principio sólo habrá dos niveles:

- Usuario (común)
- Administrador (todos los permisos).

Éstos se corresponden con un campo Nivel (bit) en la tabla Usuario.

Lo que no sé es cuál es la manera idónea para restringir el acceso de los usuarios a las páginas del sistema.

Pienso en el principio de obtener el Nivel del usuario al momento del login, y a partir de ahí redireccionarlo a otra página según su nivel, que muestre acceso sólo a lás páginas PHP que "le corresponde" usar... Cada archivo PHP debería verificar en la cabecera el nivel de quien se logueó, para que nadie con nivel "usuario" acceda a formularios de un "Admin" por ejemplo.

Quería preguntarles qué esquema o principio me conviene seguir, porque ése que tengo en mente no me convence para nada...

— ¿Podría trabajar lo de los usuarios a nivel de administración de base de datos? O sea que según el login, el user utilice la BD como root o como algún otro usuario creado a este efecto... Ya los privilegios los trabajaría en MySQL con permisos sobre cada tabla.

— ¿Y trabajándolo a nivel de tablas? He visto por ahí que crean los permisos en tablas de la BD, y en éstas guardan los nombres de las páginas que cada usuario podrá ver según su nivel.

Espero que me puedan indicar una forma general de trabajo, la más acostumbrada o ideal en estos casos. El hecho es que posteriormente trabajaré una Intranet mucho más grande, con decenas de usuarios y tablas con millones de registros, así que me gustaría saber por su experiencia cuál es la solución más idónea para éste y futuros problemas.

Muchas gracias a todos.




En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Intranet PHP+MySQL. Duda con los permisos de usuarios
« Respuesta #1 en: 1 Mayo 2015, 22:13 pm »

acuerdate qu los usuarios a nivel d mysql no es lo mismo que php, mysql restringe permisos en el uso de la tabla y te crearía una serie de conflictos innecesarios

lo que haces es que al logearse, se leen los datos de la tabla y en la variable de sesion metes un valor "admin" que sea true/false, cada pagina de administrador debe tener el seguro "if...$_....['admin']!=true){prohibido();"

lo que puedes hacer es una sola pagina de admin, que sea puros require_once de otras paginas y controlas todo el flujo en un solo portal


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Antonio_1987

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Intranet PHP+MySQL. Duda con los permisos de usuarios
« Respuesta #2 en: 2 Mayo 2015, 04:14 am »

Hola, engel lex, gracias por responder. Pues sí, por el tema de los conflictos posteriores es que no me gustaba mucho la solución de otorgar permisos a nivel de BD. Aunque lo tenía en cuenta por el tema de una mayor seguridad (y por saber si es lo que se usa en sistemas verdaderamente grandes). Lo que sí, supongo que no será recomendado conectarse mediante el usuario root, ¿no? Supongo que tendré que crear un usuario que pueda manipular los datos pero no alterar la estructura de la BD. Todos ingresarían bajo ese ese usuario MySQL... Me indicas si supongo mal.

Entonces me recomiendas manejar los accesos en la propia programación PHP. El temita es que recién me estoy iniciando en el diseño Web (como te mencioné, pensaba usar plantillas ya hechas), ¿tendrás talvez algún manual o link con ejemplos?, sobre todo la parte de hacer una Web con una sóla página, a la que se le cambie el contenido según el usuario o la información requerida, en vez de hacer varias páginas PHP diferentes (que es lo que había empezado a hacer, repitiendo código en las cabeceras y demás  :-\ ). Muchas gracias por tu ayuda.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Intranet PHP+MySQL. Duda con los permisos de usuarios
« Respuesta #3 en: 2 Mayo 2015, 04:36 am »

Citar
Hola, engel lex, gracias por responder. Pues sí, por el tema de los conflictos posteriores es que no me gustaba mucho la solución de otorgar permisos a nivel de BD. Aunque lo tenía en cuenta por el tema de una mayor seguridad (y por saber si es lo que se usa en sistemas verdaderamente grandes). Lo que sí, supongo que no será recomendado conectarse mediante el usuario root, ¿no? Supongo que tendré que crear un usuario que pueda manipular los datos pero no alterar la estructura de la BD. Todos ingresarían bajo ese ese usuario MySQL... Me indicas si supongo mal.

no supones mal... creas un usuario, con permisos limitados (solo las operaciones que usarás que normalmente se limitan a select, delete y update) y acceso solo a esa base de datos...

Citar
Entonces me recomiendas manejar los accesos en la propia programación PHP. El temita es que recién me estoy iniciando en el diseño Web (como te mencioné, pensaba usar plantillas ya hechas), ¿tendrás talvez algún manual o link con ejemplos?, sobre todo la parte de hacer una Web con una sóla página, a la que se le cambie el contenido según el usuario o la información requerida, en vez de hacer varias páginas PHP diferentes (que es lo que había empezado a hacer, repitiendo código en las cabeceras y demás  :-\ ). Muchas gracias por tu ayuda.

no, yo aprendí a base de experimentación...

en general no es complicado...

experimenta con require, con variables _GET (investiga sobre url amistosos) y con esas 2 cosas combinadas puedes obtener lo que necesitas

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Antonio_1987

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Intranet PHP+MySQL. Duda con los permisos de usuarios
« Respuesta #4 en: 3 Mayo 2015, 22:01 pm »

Bien, engel lex, me ha servido de mucho tu ayuda, ya tengo una idea de cómo estructurar la Intranet con include o require (parece que me hablabas del esquema "modular", ¿no?).

Estoy rearmando la Web, pero te debo mencionar que en este sistema van a entrar puras transacciones (insert, update; casi no va a ser informativo), así que tengo la inquietud de cómo trabajaré cuando llegue a los formularios.

Supongo que en adelante en los forms ya no deberé hacer llamadas del tipo:

action="Registrarcambios.php" 

Sino:

action="principal.php?pagina=Registracambios"

...realizando el registro en la misma página Principal por medio de include. ¿Pero haciéndolo así no tendré inconvenientes al pasar los datos por POST? ¿El archivo PHP que procese la info, recibe sin problemas los parámetros al ser llamado así?

Aún voy a probar, pero me cuentas, por favor, si de antemano también tendría que cambiar esa forma de trabajo; si es que para el caso de formularios (y no sólo páginas "planas") no conviene llamar los contenidos con include o require.

Gracias por tu ayuda, me viene siendo muy valiosa.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Intranet PHP+MySQL. Duda con los permisos de usuarios
« Respuesta #5 en: 3 Mayo 2015, 22:31 pm »

la intención es que de pases por ejemplo "agregar un amigo"


pagina.php?accion=agregar&persona=antonio

la pagina (como el ya debió hacer login), sabrá a quien tiene que darle ese amigo

de manera que no pases directo un query a la db, para evita que alguien haga algo que no debería tener acceso a hacer
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dar permisos a los usuarios en login
PHP
n3fisto 3 9,488 Último mensaje 27 Noviembre 2009, 15:12 pm
por n3fisto
[Share] - Intranet Colegio (PHP,MYSQL) « 1 2 ... 11 12 »
PHP
Hadess_inf 117 104,542 Último mensaje 8 Marzo 2016, 04:55 am
por PalitroqueZ
Duda con usuarios por defecto en MySQL
Bases de Datos
redee 1 3,902 Último mensaje 19 Febrero 2014, 21:25 pm
por Carloswaldo
permisos usuarios
Windows
ciberdelia 1 2,215 Último mensaje 23 Julio 2014, 16:57 pm
por Senior++
[BATCH] Duda sobre recursividad en directorio y permisos de usuarios
Scripting
Aeros 3 3,213 Último mensaje 5 Marzo 2015, 16:00 pm
por Aeros
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines