I am developing an application in php/MySql and looking for the best approach from a security standpoint. The application will use and store sensitive information. I realize there are risks to all approaches, but I need the best possible approach that will minimize security risks of the sensitive information with this application.
Here is the foundation of the application:
1) Entire application runs with https and php 7.
2) User registers for an account at register.php and passwords is hashed password_hash and Password_BCRYPT during registration.
3) User logs into the web application via login.php
4) Once logged in, user visits manage credentials page (manage-accounts.php) and on a web from enters url, user name and password for third-party websites (basically like a password manager).
5) Next user visits manage-customer.php page and enters sensitive customer information that includes ssn#.
6) Lastly user visits submit-customer.php page.
- On this page the user selects one of the third-party websites entered in step 4 and a customer entered in step 5 and hits submit.
- Upon submitting the php script, it will iframe the selected third-party website (third-party website uses https).
- It will automatically log the user into the third-party website (with credentials from step 4). It will autofill sensitive customer information to the third-party https web form (with customer information from step 5). iii. It will submit the third-party webform.
Here are my questions:
1) For a system like this, what encryption/security methodology is considered best practice to maximize security of the sensitive information that is stored in step 4 and 5?
- I am not looking to create my own encryption. I’d like to use an existing proven framework.
2) What is most secure way to transmit the information from step 4 and 5 to a third-party website via the iframed web form?
3) Is it better to store the sensitive information entered in step 4 and 5 on the server or on the client? If on the client exactly how should this be done?