URL で DB ID を使用することの長所と短所は何ですか?
-
03-07-2019 - |
質問
例えば: http://stackoverflow.com/questions/396164/exposing-database-ids-security-risk
そして http://stackoverflow.com/questions/396164/blah-blah
同じ質問をロードします。
(これは質問テーブルの DB ID でしょうか?これは ASP.NET の標準ですか?)
Web アプリでこのタイプのスキームを使用することの長所と短所は何ですか?
解決
まず、単純な ID は通常連続しているため、アプリケーションから他のデータを推測して取得するのは非常に簡単です。
AJAX 経由で動的に JSON をロードするのではなく、実行時に JSON をロードします https://stackoverflow.com/questions/395858/doesnt-matter-what-I-type-here
そうは言っても、それはボーナスとみなされるかもしれません。なぜなら、正気の人間であれば、リンクをクリックしてアクセスする必要があるという事実にセキュリティ全体がかかっているとは思わないからです。 安全なデータ, したがって、データの発見が容易であることは良いことかもしれません。
ただし、ポイントの 1 つは、データベースのインデックスをいつか再作成する予定であるということです。他の理由がない限り、検索エンジンに古いリンクが残っている場合、古い URL を無効にする何かが存在するのは良くありません。
また、ここSOでは、他の質問へのこのようなリンクを使用するのはごく普通のことなので、ある時点でインデックスを再作成して番号を付け直したい(またはGUIDに移動したい)場合でも、古い構造とIDを維持する必要があります。
さて、これは実現する可能性が高いでしょうか、それとも必要なのでしょうか?おそらくそうではありません。
あまり心配する必要はありません。アプリケーションへのすべてのエントリポイントが既知であり、問題がないはずであるかのようにセキュリティを構築してください。
他のヒント
-
データベース内の質問を検索するには、データベースIDが使用されます。これは、高速という意味の数値です。除外する場合は、タイトルを検索する必要がありますが、かなり遅いです。
-
質問自体は、「検索エンジンに優しい」ようにするためのURLの一部です。 g ** gleなどで上位にランク付けされます。
長所:
- ページ情報を簡単に取得できます。 IDを取得し、データベースviolaを呼び出します。このルックアップを超高速にするために、テーブルにインデックスを付ける必要があります。
- 保証された一意のURL。
コン:
- システムのIDは公開されています。 SOのような公的に利用可能なシステムでは問題ありません。ただし、バックエンドで適切なセキュリティ対策を講じることにより、機密性の高いシステムでも問題になりません。
- UいURL。 6桁以上の数字は覚えにくいだけでなく、数字だけで識別できる場合はページを区別するのが難しくなります。より関連性が高く、適切に構造化された情報を含むURLのランクが一般的に高くなるため、これはSEOにも影響を及ぼします。 SOは、URLにも投稿名を提供することで補正します。昼食時にバディへの特定の投稿をガラガラ鳴らすことはできませんが、ブラウザの履歴で簡単に見つけることができます。
- ルックアップが遅い。一般に、データベースでテキスト検索を実行すると速度が低下します。
ただし、このようなコミュニティでは、同じ質問名が同時に投稿される可能性が (それでも最小限ではありますが) 高く、それによって問題が発生する可能性があることを覚えておいてください。そのため、ある種の一意の識別を適用する必要があります。ID はおそらく非常に論理的です。この特定の Web アプリケーションが開発されたコンテキスト。
ASP.NETや他のフレームワークでそれを行うのは悪い習慣ではなく、かなり一般的だとは思いません。 @lassevkが言ったように、あなたのセキュリティがそれに依存している場合、そこにいくつかのチェックが必要です(ユーザーXはYを記録することができます)が、それは公開サイトのURLのSEOにやさしいことに起因します。
たとえば、SOのURLはかなりフレンドリーです:
GoogleはURLの開始時の情報を終了時よりも高くしているため、次のようになります。
https://stackoverflow.com/pros -and-cons-of-using-db-id-in-the-url / q / 407120
" URLでdb idを使用することの長所と短所"のランキングを上げる必要があります。それが唯一の要因ではありませんが、それは非常に大きな要因です-Amazonのフォーマットを見てください。
http://www.amazon.com/Maverick-Ricardo-Semler/dp / 0712678867
Wordpressは次のようにします:
ただし、" foo"という同じ日に2つの投稿を投稿すると、次のようになります:
スラッグ(foo / foo2)はPKではありませんが、postsテーブル上で一意として維持されます。
URLがGUIDでない限り、URLにIDを入れても問題ないと思います!方法が長すぎて、入力が難しい。 int、または何らかの短いガイド(6〜8文字など)であれば、問題になりません。