actually, hashing data usually protects from vulnerabilities by not putting transfering plain data.
in that case, I'd suggest you hash the password on the authentication server twice, and have the password sent by hashing only once. this allows to send encrypted passwords and still avoid storing on the database data that can be used by hackers to log in with the users' accounts.
Additionally, I'd recommend making up a list of trusted clients, and If possible, put the authentication script on https