2

おそらく私は何か不可能なことを求めているのかもしれませんが、ここに行きます: API へのクライアント要求を認証する方法を見つけようとしていますが、一部のクライアントは JavaScript を使用して要求を送信することしかできません (それらは JavaScript を使用しないホストされたサービスを使用します)。サーバー側のコードを 1 行書くことができます)。これは、API キー、シークレット、またはハッシュを JavaScript で処理する必要があり、実質的に役に立たないことを意味します。

かなり難読化されたコードを使用している API をいくつか見てきましたが、私の意見では、そのようなアプローチは誤ったセキュリティ感覚を与えます (JavaScript Beautifier で簡単に読み取ることができます)。より良いアプローチはありますか?

すべての回答に感謝します。

4

2 に答える 2

2

これをすべて JavaScript で行う方法は実際にはありません。私がこれまでに使用した唯一のオプションは、IP アドレスによる制限、またはJavaScript クライアントのその他の形式の認証です。認証/承認の後、HTTPS を介してクライアントに秘密鍵を渡します。この秘密鍵は、クライアントに少しの間だけ残ります (つまり、どこにも保存されません)。

短所は、賢くて悪意のあるユーザーが JavaScript を非常に簡単にデバッグして、このキーを確認できることです。

于 2012-04-05T20:56:10.543 に答える
2

いいえ、JavaScript はオープンです。つまり、セキュリティはゼロです。

最も賢明なことは、自分が所有するサーバーを介して API をプロキシし、ユーザーにキーを使用してサーバーにサインアップしてもらうことです。

これは、彼らがサーバー側のコードを持つことができなくても、サーバーをホスティングしているので問題ないことを意味します。

于 2012-04-05T20:53:26.167 に答える