I am developing (as A PHP 5.2 + MySQL application) a personal information manager web application for my own which is meant to be hosted on a shared hosting (like bluehost or dreamhost) and to store lots of very confidential personal data including those like passwords, personal private keys, financial details, contacts, etc. How do I best protect this data?
I see the folowing weak points:
- Physical access to host by hackers or hosting administrators.
- Sniffing the decrypted data between the host and the client.
- Sniffing the decrypted data on the host before it is actually sent.
And obvious solutions:
- Encrypt and decrypt on client side (in a JavaScript or Java applet), a server operates with already encrypted data only.
- Use HTTPS.
- See §1.
Are there any better ideas and known good implementations, incl. any frameworks out there?
I am interested in the following languages: PHP (5.3 or 5.2), Ruby, C#4, JavsScript (Firefox 3.7), Java (1.6).