Securing the connection
Baseline- TLS on every connection, including internal ones. The old model of a hard perimeter with an unencrypted soft interior fails as soon as anything inside is compromised, which is the ordinary case rather than the exotic one.
- TLS provides three things worth naming separately, because candidates usually name only the first: confidentiality so traffic cannot be read, integrity so it cannot be altered undetected, and authentication of the server through its certificate so the client knows what it is talking to.
- A man-in-the-middle attack is what you are preventing: an attacker positioned between client and server who can read or modify traffic. Certificate validation is the specific control that stops it, which is why an application that disables certificate checking to make an error go away has removed the protection entirely while appearing to still use TLS.
- HTTP Strict Transport Security tells the browser to refuse plain HTTP for the domain in future, which closes the window where a first request over HTTP could be intercepted and redirected.
Common trap: Saying 'we use HTTPS' and stopping. The follow-up is always what HTTPS actually gives you, and an answer that cannot separate encryption from server authentication does not survive it.