私は REST Api の設計を進めており、暗号化の方法を決定しようとしています。現在、すべてのリクエスト/レスポンスに https を使用していますが、さまざまなログ (DNS、ブラウザなど) にはプレーン テキストの URL が記録されます。これは、「www.mysite.com/user/credit-card-number/」などの機密データを URL で送信するときに問題を引き起こします。SSL/TLS 公開/秘密鍵を利用してパス パラメータを暗号化する方法はありますか? たとえば、「www.mysite.com/user/credit-card-number/」は「www.mysite.com/encryptedstring」に変わります。
2 に答える
URL に機密データを含めないことを強くお勧めします。何かを識別する必要がある場合は、少なくともランダムに生成された文字列/UUID/トークン/識別されているものにマップするものを使用できます。
手動の暗号化/復号化の処理は、使用している言語/フレームワークによって異なります。たとえば、Java を使用していた場合は、Java の SSL/TLS フレームワークである JSSE で Google 検索を実行します。
暗号化/復号化を自動的に行うものを探している場合は、使用しているフレームワークにも依存すると思います。
私の理解が正しければ、URL が SSL/TLS チャネルで暗号化されているかどうかを尋ねています。このSOの質問が指摘しているように、答えはイエスです。TLS を介して、対象サーバーの IP アドレスとポートを除き、クライアントとサーバーの間ですべてが暗号化されます。(これには、http ヘッダーも含まれます。)
編集: もう一度読んだ後、ログに記録されている URL を停止することに関心があることがわかりました。これを行う唯一の方法は、サーバー上の URL を変更することだと確信しています。あまり役に立ちませんが、私の提案は、cc 番号を URL に入れたり、代わりに何らかの派生キーを使用したりしないことです。