クライアント(ブラウザ)は、サーバーがそれらを提供するため、ログイン資格情報を持っていると記述しているという問題があります。資格情報がすでに公開されているため、「公開中」はありません。すべてのクライアントに資格情報を公開することは、セキュリティがないことを意味します。
私たちはセキュリティについて話すとき、ブラウザを操作する本物の人物ではなく、ブラウザと考える。あなたが言ったように、実際の人はすべてのブラウザのデータにアクセスできます。
APIを保護するには、秘密鍵を秘密にしておく必要があります。これは、各クライアントが異なるキーを持ち、それを使ってRESTfullサーバーからデータ/サービスを取得することを意味します。
単純なシナリオでは、このキーはセッションIDと同様に使用/管理できます。 クライアントは、まず認証プロセスを通過する必要があり(ログイン多分)、クライアントのセッション用に一時キーを生成することができます。
一般に、鍵は権利に変換されます。デフォルトですべてのクライアントにキーがある場合、誰もがデフォルトの権限を持っているので、キーを削除してすべての要求に対してデフォルトの権限を設定することもできます。
データベースに完全にアクセスしたくないクライアントには、データベースへのアクセスが制限されているキーが必要です。
一方、クライアントがキーを提供する場合、これは安全です。たとえば、APIにアクセスするための秘密鍵を使用するサーバー上のPHPコード。
ログイン証明書もトークンもJS/HTMLではハードコードされていません。ユーザが認証され、ある種類のトークンを持つサーバーの特定のリソースにアクセスする権限が与えられると生成されます。 –