私は人々がインターネット上であちこちで講義するのを聞いたことがあります。それはウェブアプリケーションで人前向きのデータベースIDを隠すのがベストプラクティスだということです。私はそれらが主にフォームとURLで意味すると思いますが、私は主題について一口以上を読んだことがありません。
編集:もちろん、今私はこれを尋ねたので、私は主題に関するいくつかのリソースを見つけます:
- /programming/2374538/obscuring-database-ids
- /programming/1895685/should-i-obscure-primary-key-values
- http://joshua.schachter.org/2007/01/autoincrement.html
これらのリンクは私の好奇心の一部を満たしましたが、SOの投稿には多くの票がなく、必ずしもこのコンテキストのトピックに集中しているわけではないので、何をすべきかわかりません。リンクは偽です。残りの投稿はそのままにしておきます。
あいまいさとセキュリティの違い、およびこの2つがどのように連携するかを理解していますが、なぜこれが必要なのか想像できません。
これには真実がありますか、それは単なる妄想ですか、それとも完全に偽物ですか?
私はそれを行う方法を考えることができますが、もちろん、それはアプリケーションコードに多くの複雑さを追加します。これはどのような状況で役立ちますか?これが人々が頻繁に行うことである場合、通常はどのように展開されますか?識別子をハッシュしますか?他に何か?余分なセキュリティを確保するための多くの作業のようです。私は本当の解決策を探しているのではなく、人々が現実の世界でこれをどうやって/なぜ行うのかを知りたいだけです。
これは本当に「ベストプラクティス」と見なされますか、それとも単に価値の低い微最適化のみですか?
注:少数の人々は間違った考えを持っているかもしれないと思います:推測が困難なIDが唯一のセキュリティメカニズムであることを示唆していません。明らかに通常のアクセスチェックがあるでしょう。それらが適切に配置されており、レコードのIDまたはハッシュされたIDを知るだけでは、アクセスを許可するには不十分であると仮定しましょう。