El problema de la inyeccion sql se soluciona bindeando parametros, para eso es la funcion
bind_param.
Los datos de seguridad como contraseñas, respuestas de preguntas de recuperacion y demas, se guardan con
hashing.
No confies en nada que venga del navegador, y no confies en ninguna validacion de javascript.
PHP debe verificar todo y debe ser capaz de informar al usuario de cada error. javascript solo sirve para hacer mas amigable la experiencia del usuario, pero no confies en ningun dato que venga de el.
Podrias encriptar y desencriptar los paramentros que pasas como proteccion adicional.
Asegurate de que tu sitio tenga un certificdo ssl (para usar el protocolo https) con lo cual estas mas protegido contra ataques externos ya que toda la comunicacion va encriptada.
Te recomiendo leer
este tema iniciado por @triby hace unos años, si bien hay cosas que se actualizaron en este tiempo, la gran mayoria aun son validas hoy en dia asi que como para empezar ahi tienes de sobra.
Saludos.