Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2010
rhino0nt rhino0nt is offline
Miembro
 
Registrado: jun 2008
Posts: 25
Poder: 0
rhino0nt Va por buen camino
Evitar programas que revelan passwords y activan botones.

Mi duda, es la siguiente, en una aplicación que realice para bases de datos con niveles de seguridad comence a notar que un usuario estaba realizando funciones que tenía deshabilitadas, al revisar el equipo luego de dar muchas vueltas por otras partes me encuentro con que esta persona tenía instalado un programa llamado VeoVeo, algo viejo pero que básicamente aparte de mostrar las contraseñas ocultas por asteriscos (que no le han funcionado de nada pues las guardo con MD5), además le permite activar y mostrar botones y opciones de menú que han sido deshabilitadas por no tener el usuario acceso a dichas funciones.

Existe alguna forma de evitar este comportamiento con la API o alguna manera de detectar este tipo de programas. De entrada bloquee las funciones más delicadas revisando nuevamente las opciones al abrir las pantallas.

De antemano gracias y un saludo a todos.
Responder Con Cita
  #2  
Antiguo 09-05-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Bueno, con el tema del password no hay nada que hacerle. El TEdit ya es así y punto. Quizás debas buscar algún componente especializado que no funcione igual que el edit. Pero el comportamiento del edit no se puede cambiar.

Con respecto a las opciones de menu... pues a mí no me andan. Es decir, puede que queden habilitadas, pero la propiedad Enabled me queda en False, así que al hacer click en el menú, no pasa nada. Esto es en Delphi 7, así que puede cambiar, quizás sea un bug de D7.

Con los botones, menues y otros componentes quizás sería mejor que crees tu propia propiedad llamada Habilitado, y que maneje la habilitación por su cuenta... Algo así:

Código Delphi [-]
type TButton = class(StdCtrls.TButton)
  private
    FHabilitado: Boolean;
    procedure SetHabilitado(Valor: Boolean);
  public
    property Habilitado: Boolean read FHabilitado write SetHabilitado;
end;


procedure TButton.SetHabilitado(Valor: Boolean);
begin
  Enabled:= Valor;
  FHabilitado:= Valor;
end;


procedure TForm1.btn1Click(Sender: TObject);
begin
  if TButton(Sender).Habilitado then // <-- Acá evitás el problema.
    ShowMessage('a');
end;

Se podría usar el truquillo de la "declaración que pisotea" para redefinir la clase TButton y no tener que andar haciendo malabares en cada form.

Y siempre usar el Habilitado y no el enabled para habilitar o deshabilitar el botón.

Es un poco engorroso, porque tendrías que hacerlo con todas las clases que quieras bloquear, pero... Otra cosa no se me ocurre.

Qué sé yo, otra no se me ocurre... Esperemos a ver qué dicen los compañeros.

Saludos.
Responder Con Cita
  #3  
Antiguo 04-06-2010
duranguenze duranguenze is offline
Miembro
 
Registrado: nov 2009
Posts: 17
Poder: 0
duranguenze Va por buen camino
O mejor aun, has un chequeo cada vez que de click en un menu, o oculta el menu, asi no podra acceder nisiquiera al menu visible deshabilitado, y no podria activarlo puesto que no tiene a donde apuntar, este tipo de usuarios son una lata ya que creen que estan haciendo una gracia, pero si se les quita ciertas acciones es por algo.
Responder Con Cita
  #4  
Antiguo 07-06-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La solución viene por no crear no que no se debe utilizar. Es decir, que lo que no está no se puede utilizar.
A veces esa opción es complicada, así que optamos por la desactivar/ocultar determinadas acciones, pero como has comprobado no siempre son efectivas.

Dependiendo de cómo actives/ocultes esas opciones lo más sencillo es pasar esa comprobación al momento de ejecutar una acción o elemento del menú.

Si esto no es posible, utiliza un procedimiento al iniciar el programa para recorrer las opciones del menú y cambiar el TAG, por ejemplo, a las que están desactivadas a -1.

Al ejecutar, compruebas el TAG (que no debería ser -1). Quien dice el TAG, dice crearte una lista en memoria con las desactivadas y comprobar antes de ejecutar que está o no en la lista.

A parte de eso (y si detectas que están ejecutando acciones no permitidas), yo optaría por sacar un mensaje en pantalla tipo...

"El sistema ha detectado que está ejecutando una acción deshabilitada. Usted no debería ejecutar esta opción. Si es un error consulte con el Administrador del sistema. Le informamos además de que esta acción no-permitida/incorrecta queda registrada junto con el nombre de usuario que la realiza."


Algo así como..."Te piensas que eres muy listo, pero que sepas que sé lo que estás haciendo y te tengo fichado..."
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como puedo evitar que los botones se "Focusen"? Gattaca Varios 2 22-03-2009 04:24:25
no se activan iconos del toolbox en webforms aspx JuanErasmo .NET 0 11-01-2007 22:17:02
Api de windows, obtener datos y pulsar botones de otros programas. lag_0 API de Windows 4 19-09-2006 07:31:11
Passwords jdattoli Conexión con bases de datos 1 05-05-2006 05:06:48
Cuando Activan la Pagina de Cadetill???? AGAG4 Varios 2 26-11-2004 21:23:51


La franja horaria es GMT +2. Ahora son las 16:38:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi