バックエンドAPIサーバーと通信するクライアントを、JavaScript&HTMLで作成しようとしています。

バックエンドで「正しいクライアントからのリクエストか否か」を調べるためには、クライアントに専用の秘密の文字列を埋め込んでおき、それをリクエストパラメータまたはヘッダに含めて送信するのが一般的なのではないかと思います。

しかし、JavaScript&HTMLでその手法を採用した場合、ユーザは秘密の文字列に容易にアクセスすることができてしまいます。
それにより、(知識のあるユーザであれば)バックエンドAPIを利用した野良サイトを作るなどして自由にAPIを使うことが可能です。

JavaScript&HTMLのクライアントで、「正しいクライアントからのリクエストか否か」を調べるセキュアな方法はありますでしょうか。