skiflyer
I only recommend basic authentication if no form based authentication handling via SSL is available.
The issues with this type of authentication stay the same - as you mentioned. If there is any sensitive data basic authentication without encryption is not a good idea.
The overhead of sending username and password with every request is there, however, a session based authentication system will send the session ID, which is probably longer than username and password combined.
In terms of security, I completely agree, that an insecure plain text sending of username and password is highly undesirable for sensitive context.
The best solution then would be:
Write an Apache mod_auth_login handler that establishes credentials,uses a tracking cookie that is referenced in a credentialing database with the IP and username. The handler triggers redirection to an https:// form based login page that redirects to the requested URL after authentication. Once the credential is esablished the auth handler checks .htaccess privileges. A powerful server is recommended for this - but after all, if the data really is sensitive, it deserves the hardware.
One can scale that down to have an SSL based login with a MySQL backend that keeps track of the session with the credentials.