Tengo este proyecto escolar mío que involucra una aplicación y un sitio web que usa la misma base de datos. La aplicación sirve como una herramienta de administración para el sitio web. Dado que está hecho en C # y no es tan seguro como PHP, decidí que la aplicación interactúe con la base de datos a través del sitio web:
En el sitio web, hay un archivo php utilizado para establecer un enlace entre la aplicación y la base de datos. Este es el algoritmo que configuré para que esté lo más seguro posible:
- El usuario ingresa una contraseña en la aplicación, la envía al archivo php como un parámetro (/get.php?pwd=1234)
- El sitio web envía un token (llámalo T0) a la aplicación
- La próxima vez que la aplicación quiera enviar una consulta al sitio web, envía el md5 de T0 (llámelo T1), el sitio web en su lado calcula el md5 de T0 y lo compara con T1
- La siguiente consulta debe enviarse utilizando el md5 de T1 (T2) y el El sitio web lo comparará con md5 de T1
Lo bueno de este método es que en el caso de un hombre en el medio (suponiendo que no sepa que usamos el md5 del token), leer la contraseña o T0, no servirá para nada. propósito.
Como medida de seguridad adicional, cada token utilizado se guarda en una base de datos separada que contiene la ubicación exacta del usuario, ip y la operación realizada con él.
Como no soy un experto en seguridad, quería saber cuán difícil es infiltrarme en este sistema. Gracias