1

私は、RESTful API を設計する際に、RESTful API の優れたプラクティスに従うように努めてきました。たまたま非常に単純で一般的なものの1つは、従うのが難しくなっています。

  • GEThttp 動詞を使用してリソースを取得する

なんで?次のようなアカウント情報を取得する URI があるとします。

AXY_883772銀行システムの口座 ID はどこにありますか。セキュリティ監査では、次のような警告が表示されます。

  1. アカウント ID は HTTP ACCESS LOGS に表示されます
  2. アカウント ID がブラウザーの履歴にキャッシュされる可能性があります (ブラウザーを定期的に使用して RESTful API にアクセスすることはほとんどありません)

POSTそして、代わりにその動詞を使用することを「推奨」することになります。

だから、私の質問は:

私たちはそれについて何ができますか?セキュリティの推奨事項に従うだけGETで、ほとんどの場合使用を避けますか? 特定の URL へのアクセスをログに記録しないように、ある種の特別な APACHE/IIS/NGINX アクセス ログ構成を使用しますか?

4

1 に答える 1

2

URL に機密情報が含まれていて、URL をログに記録している場合は、機密情報をログに記録しています。

したがって、2 つの明白な解決策があります。

  • URL をログに記録しない
  • 機密情報を含まない別の URL を使用してください

最後の 1 つは、サーバーが通常の ID にマップし直す (異なる) ID を使用して実装できます。

これらのソリューションのどちらも選択できない場合は、GET を使用できないため、RESTful な設計として適切ではありません。

これらのことはすべて、おそらくあなたにはすでに明らかだと思います。しかし、それは私が与えることができる最も正確な答えです。

これが GET だけに当てはまるわけではなく、実際には PUT、DELETE、そして多くの場合 POST にも当てはまります。

于 2012-07-13T13:46:47.600 に答える