Por favor, vea mi comentario, pero espero que esto le brinde una respuesta para que pueda comenzar en la dirección correcta. Primero, asegurar una aplicación en primer lugar no es fácil. Asegurar una aplicación que está abierta a Internet tiene los mismos principios, pero es más difícil y sin duda lo expone más. Primero me preguntaría si necesita esta aplicación abierta a una red externa. Si lo haces, te recomendaría que busques ayuda de alguien porque es una tarea grande y tienes datos persistentes almacenados en una base de datos.
Para explicar por qué su esquema actual es inseguro, le ofreceré una analogía. Restringir el acceso a través de una dirección Mac es lo mismo que restringir los automóviles (a través de su placa de matrícula) a una comunidad cerrada. Claro, usted tiene algún control de acceso, pero para mí es bastante fácil falsificar una placa de matrícula y darle una bofetada en mi auto para pasar su filtro de mac addr. La idea es tener múltiples capas de defensa. En esta analogía, mi casa (dentro de la comunidad cerrada) es su aplicación. En primer lugar, la comunidad cerrada restringe a los usuarios en función de un campo más general (dirección IP) comúnmente denominado lista blanca. Esto se puede omitir para que la siguiente capa sea su control de acceso de usuario verdadero (también conocido como el bloqueo de la puerta de su casa). Cada usuario tiene un nombre de usuario y una contraseña para poder rastrear cualquier cosa que hagan y vincularlos. Si no tienen un nombre de usuario y contraseña, obviamente no pueden obtener acceso a su casa o aplicación en esta analogía. Una vez que pasan la cerradura de la puerta de su casa, ciertos usuarios pueden estar restringidos y solo pueden acceder a ciertas habitaciones de la casa con sus credenciales. Puedes ver cómo esto se complica.
La idea general es crear múltiples niveles de defensa para que un atacante tenga que trabajar muy duro y "ganar" varias veces antes de acceder a cualquier cosa. Como siempre, esto depende de cuán sensible sea la aplicación. Cuanto más sensibles son los datos, más controles se colocan. Lea acerca de cómo desarrollar un modelo de amenaza antes de comenzar. ¡La mejor de las suertes!