Restringir acceso en una aplicacion php

489 views
Skip to first unread message

Edsson Gonzalez

unread,
Apr 9, 2012, 2:43:33 PM4/9/12
to ph...@googlegroups.com
Se que no colaboro mucho (mas es lo que aprendo que lo que puedo aportar muchas veces) pero acá va mi caso y si pueden darme sugerencias muy agradecido.

Necesito crear una aplicación PHP que limite su uso por computadora, como asi?

Bueno se requiere que se utilice solo en unas computadoras registradas que harán trabajo de campo conectándose con un modem de tigo por ejemplo, y que no utilicen las pc's personales.

Primero pensé en crear un whitelist de Mac Address y detectarla al conectarse pero ya lei que no se puede detectar la Mac del Cliente, pensé en la IP, pero que pasa si el proveedor les cambia el rango, Alguna idea?

--
Edsson Gonzalez

Luis Penados

unread,
Apr 9, 2012, 2:48:37 PM4/9/12
to ph...@googlegroups.com
la compu registrada puede tener un archivo 'secreto' que tu app
verifica si encuentra.
un textfile con un codigo o algo asi?

> --
> PHPGT :: Grupo de PHPeros de Guatemala
> email: ph...@googlegroups.com
> reglas de uso: https://sites.google.com/site/grupophpgt

--
greetings and salutations.
--Luis Penados
--pena2.org | don't panic and live long and prosper because there is no spoon..

'sometimes you just have to pee in the sink' (Bukowski)

Guillermo Abate

unread,
Apr 9, 2012, 2:54:50 PM4/9/12
to ph...@googlegroups.com
htacess en la carpeta?
"Un verdadero geek es un tipo que cree que en un kilómetro hay 1024 metros."

Mayix Developer
http://abasme.gentoo-la.org

Mario Soto

unread,
Apr 9, 2012, 2:55:51 PM4/9/12
to ph...@googlegroups.com
No es facil hacer eso usando una aplicación web. La restricción mas
fácil que podés hacer es por medio de ip. El problema es que según veo
tenés IP volátil y no usas vpn (que en cualquier caso seria como una
lan) en tus sistemas pues usan un modem por teléfono prácticamente.
Para las direcciones mac a nivel php no es posible obtenerlas, de
cualquier modo, fácil.

Lo que se me ocurre para tu facilidad en este específico caso es crear
un programa en cualquier lenguaje compilado que te monte un navegador
en una ventana y que pase a la aplicación php siempre algún comando de
texto (ej. encabezados, cookie, querystring, etc) dentro de la
información que se envía y limitar el acceso de ese modo.

De otra forma puede ser posible pero no se me ocurre actualmente.


El día 9 de abril de 2012 12:43, Edsson Gonzalez
<edssong...@gmail.com> escribió:

> --
> PHPGT :: Grupo de PHPeros de Guatemala
> email: ph...@googlegroups.com
> reglas de uso: https://sites.google.com/site/grupophpgt

--
Mario Soto
can...@gmail.com
..._

Alejandro Velasquez

unread,
Apr 9, 2012, 3:05:54 PM4/9/12
to ph...@googlegroups.com
saludos , esto esta interesante para varagearla un poquito mas.. jejej

1. por mac define la compu y si tenes la lista sabes que usuario es.
   para el mac esta esta sugerencia, si son windows usas el comando en el cmd
    getmac  alli tendrias que capturarlo de alguna forma y parsearlo.

2. por ip define compu siempre y cuando no se cambie
3. por archivo define pc siempre y cuando no se borre (hay que ponerlo bien secret) 
    pero el problema es que con php todo es server -side entonces hay que
    asistirse de client side.  javascript  u otro.

yo creeria que para hacerlo efectivo tendria que ser una combinacion de los anteriores.
y claro agregando

4. limitar el click derecho  para que no copien texto , codigo, imagenes.
5. siempre dejar el uso de usuarios bien limitados para saber quien o que hicieron .

a mi la solucion que me gustaria es el punto 3 hacerlo con  con un  .exe para que aumente la seguridad
 talvez con visualbasic con alguna logica que verifique el mac por ejemplo y
  actualize alguna bandera de uso  o algo asi.

bueno , espero sirva de algo saludos..



2012/4/9 Luis Penados <lpen...@gmail.com>

Alejandro Velasquez

unread,
Apr 9, 2012, 3:10:30 PM4/9/12
to ph...@googlegroups.com
alli les va otro link    no lo lei bien pero usa otro comando .. pero talvez sirve de algo
siempre aprendemos algo nuevo .


http://www.forosdelweb.com/wiki/PHP:_%C2%BFC%C3%B3mo_Saber_la_MAC_Address%3F

 

Stuardo -StR- Rodríguez

unread,
Apr 9, 2012, 3:19:03 PM4/9/12
to ph...@googlegroups.com
El problema es que via web no podés confiar en nada pues TODO es falseable. Nada que pongás del lado del cliente es "incopiable" para autenticar que se use solo en esa única máquina.

De tu lado podés llevar tracking de que un mismo user solo pueda estar usando una misma session_id, en caso de haber otro logueo, botará al primer usuario.  De esa forma evitás uso doble de la licencia pero no podés obligarlo a que solo lo use en su computadora del trabajo y no pueda usarlo en la de su casa.


--

Stuardo -StR- Rodríguez | Senior Web Developer | http://maphpia.com
email: s...@maphpia.com | msn: s...@maphpia.com | gtalk: s...@maphpia.com
office: +502 6646-8047 | mobil: +502 4210-8819 | skype: stuardo_str



2012/4/9 Edsson Gonzalez <edssong...@gmail.com>

--

Ronald Montenegro

unread,
Apr 9, 2012, 3:19:14 PM4/9/12
to ph...@googlegroups.com
y si lo haces obteniendo el identificador del disco duro que seria el volume id el cual es unico asi no importaria que sistema tuvieran las compus o si usa modem o no

--
PHPGT :: Grupo de PHPeros de Guatemala
email: ph...@googlegroups.com
reglas de uso: https://sites.google.com/site/grupophpgt



--
--\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/--
Atte. Ronald Montenegro 
http://www.consultoriaitguatemala.net
http://www.rodmont.co.cc


Alejandro Velasquez

unread,
Apr 9, 2012, 3:27:50 PM4/9/12
to ph...@googlegroups.com
DISCULPEN.. CORRECCION

Mauricio Deleon

unread,
Apr 9, 2012, 3:45:42 PM4/9/12
to ph...@googlegroups.com
y si creas una pagina para crear una cookie permanente, y solo vos tenes acceso a ella como admin, luego solo verificas la cookie, eso si, tenes que indicarle al usuario que cambió de explorador y que te llame para poder volver a usar la pagina, mi granito de arena dirian xD
Luis Déleon
Analista Desarrollador
Camara Guatemalteca de la Construcción
www.construguate.com
www.expocasa.com.gt
www.construfercgc.com



Alejandro Velasquez

unread,
Apr 9, 2012, 3:32:36 PM4/9/12
to ph...@googlegroups.com


2012/4/9 Alejandro Velasquez <alejandro...@gmail.com>
DISCULPEN.. CORRECCION

 perdon , yo sugeria usar el comando getmac, pero no solo funcionaria en el servidor, no en el cliente..
    vamos a ver si encuentro algo para el lado del cliente....

Edsson Gonzalez

unread,
Apr 9, 2012, 3:26:36 PM4/9/12
to ph...@googlegroups.com
Por IP utilizando VPN se podría hacer el problema es que por "consejos" de la auditoria externa no podemos usar VPN, en una lluvia de ideas por aca pensábamos en algo:

Crear .exe (cualquier lenguaje) que el cliente ejecute, que este recabe información de la maquina como la MAC, que lo escriba en un archivo que pueda leerse desde el explorador como una cookie, que la app lea la cookie, comparar la información de la cookie con una lista blanca de Mac's,  permitir a nivel de aplicación una sesión a la vez. Problema? que copie la cookie entre maquina.

Y es que el porque se quiere dar seguridad es por la información que verán estas maquinas, se les darán con un rol bien limitado de usuario, puerto usb deshabilitados, etc.


Gracias.
 

2012/4/9 Ronald Montenegro <rdm...@ingenieros.com>



--
Edsson Gonzalez

Mario Soto

unread,
Apr 9, 2012, 5:33:52 PM4/9/12
to ph...@googlegroups.com
Creo que en este caso te convendría hacer una aplicación cliente
servidor y no una aplicación web. Hay cosas para las que la web no es
lo mejor según el nivel de requerimientos, como en este caso. Podrías
hacer lo que te digo, una aplicación frontend que realmente te cargue
un navegador interno. Incluso podés poner autenticación básica con
valores encriptados del lado del cliente y en la aplicación verificar
la mac, la mac puede ser el usuario y una contraseña genérica o
asignada uno por uno. Esto te ayudaría para que en el peor de los
casos si encuentran la dirección de donde carga, no puedan acceder por
la falta de credenciales. Esto último en caso que realmente requieran
una aplicación web.

Mauricio Deleon

unread,
Apr 9, 2012, 5:44:25 PM4/9/12
to ph...@googlegroups.com
https, y login encriptado? ahh con sesion unica y variable de sesion cambiante entre paginas?

--
PHPGT ::          Grupo de PHPeros de Guatemala
email:               ph...@googlegroups.com
reglas de uso:   https://sites.google.com/site/grupophpgt



--

Stuardo -StR- Rodríguez

unread,
Apr 9, 2012, 6:01:25 PM4/9/12
to ph...@googlegroups.com
Todas las propuestas son temporalmente buenas.  La última que se me ocurre es generar certificados para HTTPs por máquina cliente y validar esa data en el server.   Nuevamente tooooooooodas se pueden copiar y pegar en otra máquina.

Creo que si nos vamos mas profundo en el probelma encontraremos que no es el bloquear por máquina, la solución, sino una opción.

Si nos contás por qué putas querés hacer tal carajada, talvez se nos ocurra otra opción.

--

Stuardo -StR- Rodríguez | Senior Web Developer | http://maphpia.com
email: s...@maphpia.com | msn: s...@maphpia.com | gtalk: s...@maphpia.com
office: +502 6646-8047 | mobil: +502 4210-8819 | skype: stuardo_str



2012/4/9 Mauricio Deleon <inform...@construguate.com>

Carlos Avalos

unread,
Apr 9, 2012, 6:17:44 PM4/9/12
to ph...@googlegroups.com







por la última linea de Stuardo hubiese iniciado éste thread jjajajajajajaja







2012/4/9 Stuardo -StR- Rodríguez <s...@maphpia.com>

Edsson Gonzalez

unread,
Apr 9, 2012, 6:28:11 PM4/9/12
to ph...@googlegroups.com
Jajajaja haber ya medio les conte pero aca va el problema:

Hay que crear una aplicación para una entidad del gobierno, que va a mandar a trabajar gente a varios municipios, ellos llevan maquinas que van a estar registradas y que solo esas deberían de usar, estas maquinas van a llevar los puertos USB deshabilitados y otras medidas, nosotros a través de una app web debemos mostrarles información variada desde imágenes hasta textos, y lo que no se quiere es que esta gente se conecte desde otras maquinas como cafés Internet por ejemplo.

Si yo se que es muy complicado para una aplicación web, y de no poderse limitar el uso a estas computadoras, tendríamos que pensar en una aplicación de escritorio que use no se tal vez webservices para intercambiar info
Edsson Gonzalez

Douglas

unread,
Apr 9, 2012, 6:33:34 PM4/9/12
to ph...@googlegroups.com
VPN con Radius utilizando el active directory, de esa forma solo maquinas que estan en el dominio se pueden conectar, y por lo mismo solo maquinas que el administrador ha dado de alta en el directorio pueden accesar. 

--
Enviado desde mi Gmail

José Blanco

unread,
Apr 9, 2012, 6:53:24 PM4/9/12
to ph...@googlegroups.com
AMEN!!

Alejandro Rigalt

unread,
Apr 9, 2012, 7:01:05 PM4/9/12
to ph...@googlegroups.com
Entonces si se puede hacer con el AD se puede hacer con LDAP y samba.
???
                                                         
  Alejandro Rigalt
  Tel.: +502 2270-1054
  Cel.: +502 5403-6383
  FB/Twitter/identi.ca: arigalt
  E-mail: ari...@sistemas.com.gt





El 9 de abril de 2012 16:53, José Blanco <josebl...@gmail.com> escribió:
AMEN!!

Axel Ruiz

unread,
Apr 9, 2012, 7:13:45 PM4/9/12
to ph...@googlegroups.com
El 9 de abril de 2012 16:53, José Blanco <josebl...@gmail.com> escribió:
AMEN!!

--
PHPGT :: Grupo de PHPeros de Guatemala
email: ph...@googlegroups.com
reglas de uso: https://sites.google.com/site/grupophpgt


Podés llegar a gestionar tal como lo necesitás con  LDAPS (LDAP + SSL) es decir,  poniéndoles nombre:  php-ldap module, OpenLDAP y OpenSSL.

Dale un ojo a LDAPAuthPHP y la integración con OpenSSL.

éxitos!

--
Axel Ruiz
IT Consultant
Open Training & e-Ntiers Consulting
Embajador openSUSE Guatemala

Douglas Yau

unread,
Apr 9, 2012, 7:32:41 PM4/9/12
to ph...@googlegroups.com
Creo que para lo que quieres de evitar que usen otras maquinas debe ser vía VPN con radius, creo que di se puede usar ldap pero la idea es utilizar la autenticación de red de Windows por lo que active directory hace un mejor trabajo. 

Enviado desde mi iPhone

Manoloweb

unread,
Apr 9, 2012, 7:57:04 PM4/9/12
to ph...@googlegroups.com

Creo que la opción más 'natural' y viable es la que comenta Axel. Active Directory / LDAP.

Requiere algo de trabajo y seguramente investigación y pruebas, pero al final puede ser la solución.

Bueno, eso es sin conocer realmente la necesidad, como dijera Str con palabras un tanto más alegóricas, je je je

Manolo

Manolo - Sent from mobile

.M. Reyes

unread,
Apr 9, 2012, 9:40:35 PM4/9/12
to ph...@googlegroups.com

pues aca hemos resuelto casos asi con vpn y nos ha funcionado bien, supongo que no son demasiadas maquinas las que van a trabajar de ese modo

Stuardo -StR- Rodríguez

unread,
Apr 9, 2012, 9:43:59 PM4/9/12
to ph...@googlegroups.com
Si, yo también voto por una VPN.

--

Stuardo -StR- Rodríguez | Senior Web Developer | http://maphpia.com
email: s...@maphpia.com | msn: s...@maphpia.com | gtalk: s...@maphpia.com
office: +502 6646-8047 | mobil: +502 4210-8819 | skype: stuardo_str



2012/4/9 .M. Reyes <man...@gmail.com>
Reply all
Reply to author
Forward
0 new messages