Estoy desarrollando una aplicación en php / MySql y buscando el mejor enfoque desde un punto de vista de seguridad. La aplicación utilizará y almacenará información confidencial. Me doy cuenta de que existen riesgos para todos los enfoques, pero necesito el mejor enfoque posible que minimice los riesgos de seguridad de la información confidencial con esta aplicación.
Aquí está la base de la aplicación:
1) La aplicación completa se ejecuta con https y php 7.
2) El usuario se registra para una cuenta en register.php y las contraseñas son las contraseñas hash password y Password_BCRYPT durante el registro.
3) El usuario inicia sesión en la aplicación web a través de login.php
4) Una vez que haya iniciado sesión, las visitas de los usuarios administran la página de credenciales (manage-accounts.php) y en una web desde url, nombre de usuario y contraseña para sitios web de terceros (básicamente como un administrador de contraseñas).
5) El siguiente usuario visita la página manage-customer.php e ingresa información confidencial del cliente que incluye ssn #.
6) Por último, las visitas de los usuarios envían la página submit-customer.php.
- En esta página, el usuario selecciona uno de los sitios web de terceros ingresados en el paso 4 y un cliente ingresó en el paso 5 y pulsa enviar.
- Al enviar el script php, se mostrará el marco seleccionado. sitio web de terceros (el sitio web de terceros utiliza https).
- Se registrará automáticamente el usuario en el sitio web de terceros (Con credenciales del paso 4). Se completará automáticamente la información confidencial del cliente en el formulario web https de terceros (con la información del cliente del paso 5). iii. Se enviará el formulario web de terceros.
Aquí están mis preguntas:
1) Para un sistema como este, qué metodología de encriptación / seguridad es considera la mejor práctica para maximizar la seguridad de las personas sensibles ¿Información que se almacena en los pasos 4 y 5?
- No estoy buscando crear mi propio cifrado. Me gustaría usar un marco probado existente.
2) ¿Cuál es la forma más segura de transmitir la información del paso 4? y 5 a un sitio web de terceros a través del formulario web de iframed?
3) ¿Es mejor almacenar la información confidencial ingresada en el paso 4? y 5 en el servidor o en el cliente? Si en el cliente exactamente cómo ¿Debería hacerse esto?