私はAJAXを介して多くのことを行うアプリケーションを構築していますが、それらの多くはuserId、documentid、photoidなどを取り込む必要があります。
これらのIDのベストプラクティスと見なされるのは、暗号化する必要がありますか(htmlページに配置する前に)、それともそのまま送信するだけですか?
私はAJAXを介して多くのことを行うアプリケーションを構築していますが、それらの多くはuserId、documentid、photoidなどを取り込む必要があります。
これらのIDのベストプラクティスと見なされるのは、暗号化する必要がありますか(htmlページに配置する前に)、それともそのまま送信するだけですか?
IDで何をしているかによります。サーバー上でステートレスなアプリケーションを構築しているため、エンティティを取得し、必要なビジネスロジックを適用して永続化するために、リクエストの一部としてIDを送信します。この場合、安全でない直接オブジェクト参照を防ぐために、IDを暗号化する必要があります。
他のオプションもあります。たとえば、サーバー上のエンティティに変更を適用する前に、そのエンティティに承認を適用できます。もちろん、これは認証機能があることを前提としています。私たちの場合、認証を行わないため、この種の承認は機能しません。
これを更新するだけで、クライアントで暗号化されていないIDは必要ありません。したがって、IDを暗号化して最初の応答を送信するサーバーが必要になります。暗号化されたIDを含む後続のリクエストが行われます。
特定の行のIDを(データベースから)本当に非表示にしたい場合は、それらを非同期で暗号化してCookieとして設定するだけです。そうすれば、とにかく利用できるようになるので、ajaxリクエストを行うときにそれらを気にする必要はありません。
いくつかの選択を行い、フォーム送信の結果としてそれらを送信する場合は、Cookieを使用しない同じ暗号化方法が機能します。
しかし、正直なところ、データベースIDを暗号化する理由はほとんどわかりません。