PhpMyAdminのように、データテーブル内の [〜#〜] crud [〜#〜] のAPIとプレゼンテーションが自動的に生成されるWebシステムを実装することを計画しています。これを実装する方法は、クライアントからの要求に基づいてSQLステートメントを作成することです。
今私が興味を持っているのは、#3で強調表示されている単語です。プレーンな識別子(名前自体)を使用するだけで、知識のあるユーザーはリクエストを自分の意志に合わせて簡単に変更できます(たとえば、リクエストを別のテーブル/列に送信する)。私が考えるもう1つの重要なことは、読み取り専用のプレゼンテーションを作成することです。これには、並べ替えやフィルタリングなどのテーブルメタデータを含める必要があります。暗号化されていない通信を使用する場合、このようなメタデータを公開するのは非常に不気味です。
十分なセキュリティ(トランスポート暗号化(一部の場合を除く)、入力サニテーション、特権チェック)が実施されている場合、私の質問は次のとおりです。
ほとんどの場合(つまり、上記の読み取り専用シナリオを除く)、ユーザーはすでに 気密ハッチウェイ内 であることに気付きましたが、ハッシュによってセキュリティが向上するでしょうか?
それは隠すことによるセキュリティになるので、いいえ、セキュリティは向上しません。何度も何度も示されていますが、もしあなたの唯一の防御が「誰もそのメカニズムを知らないなら、一人がそれに遭遇するだけで、数分以内に何百人もの人々が知るでしょう。
それは物事を難しくするかもしれません、しかしそれはあなたの計画を難読化するのにただ一人の機知に富んだ人を必要とします。
ルーカスが指摘したように、名前を隠すことは単に難読化であり、私は同意します。ユーザーが特定のテーブル/列のみを編集できるようにする場合は、許可されたオブジェクトのみを変更できることを確認するセキュリティをプログラミングに実装する必要があります。ユーザーがあなたが提示したことだけをしようとすると思い込まないでください。ユーザーが可能な限りあらゆる方法でリクエストをいじることができる(そしてそうするだろう)と想定するのが最も安全です。