Prompt user for checkpoint upon node restart
The node should enforce a user provided checkpoint when it starts. It's not possible, at the node level, to know exactly how far in the past the latest known head should be before requiring a checkpoint, but some reasonable and conservative contant can be used, e.g. two weeks.
If the head of the last stored branch is older than two weeks, the node should require a checkpoint, if none is provided, an error message along those lines would be helpful:
In order to join the Tezos network, you need to provide the hash and depth of a relatively recent block. This is only necessary if your node joins the Tezos network for the first time, or hasn't been online for a while. The security of your system is predicated on your ability to reliably identify such a block in the relatively recent past. Note that proof-of-work protocols are far less subject to this limitation, but their operating cost is far higher.
The following procedure is a good start: find several sources which have been running nodes for a long time, are unlikely to collude with each other, and are unlikely to be similarly censored. Picking nodes in different jurisdictions, on different continents is a good start. Ask them for the hash of a block in the past two weeks. If you want to validate the chain further, you may analyze the blocks obtained and verify that the percentage of participants in the consensus is high and does not suddenly drop off. Since all transaction sign the chain, you may also verify that transactions you know to be part of the chain are present. Do not rely on a single source of information to obtain this checkpoint as it may be mistaken, malicious, or answering under duress.