聞きたかっただけです。
各ユーザーがデータベース内の ID にリンクされているサイトがあり、この主キーは多くのテーブルに含まれています。ユーザー情報を取得する最も速い方法は、この ID を取得することです。
この ID を Web サイトの HTML コードに入れるのは悪い習慣と見なされますか? 例: id="ID 番号"
それ以外の場合は、ユーザー名を使用して、この ID のデータベースでこれを参照できます。これは問題ありませんが、ID を使用する方が速いと思います。
考え?
聞きたかっただけです。
各ユーザーがデータベース内の ID にリンクされているサイトがあり、この主キーは多くのテーブルに含まれています。ユーザー情報を取得する最も速い方法は、この ID を取得することです。
この ID を Web サイトの HTML コードに入れるのは悪い習慣と見なされますか? 例: id="ID 番号"
それ以外の場合は、ユーザー名を使用して、この ID のデータベースでこれを参照できます。これは問題ありませんが、ID を使用する方が速いと思います。
考え?
あなたのキーが予測可能であれば、私はノーと言います。些細な例: 順次インクリメントする主キーを使用している場合、ユーザーはデータから情報を抽出できますが、これはプライバシー上の懸念となる可能性があります。たとえば、自分のアカウントの前に作成されたアカウントを推測できます。サイトから体系的に情報を収集しようとする人にとっても、生活は楽になります。
関連する読み物
https://stackoverflow.com/a/7452072/781695
エンド ユーザーに、これらの変数をいじって好きなデータを渡す機会を与えます。この脆弱性を緩和する対策は、代わりに間接的なオブジェクト参照を作成することです。これは大きな変化のように聞こえるかもしれませんが、必ずしもそうである必要はありません。すべてのテーブルなどのキーを変更する必要はありません。間接参照マップを使用してデータを巧みに処理するだけで、それを行うことができます。
https://security.stackexchange.com/a/33524/37949
データベース キーを非表示にすることは必ずしも必要ではありませんが、攻撃者が攻撃で内部 ID を参照しようとしている場合は、より困難になります。ファイル名やその他のそのような内部識別子への直接参照により、攻撃者はサーバーの内部構造をマップできるようになり、他の攻撃に役立つ可能性があります。これは、パス インジェクションとディレクトリ トラバーサルの問題も引き起こします。
https://www.owasp.org/index.php/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet
オブジェクト参照マップには、最初にセッションに一時的に保存される承認済みの値のリストが取り込まれます。ユーザーがフィールド (例: color=654321) を要求すると、アプリケーションはセッションからこのマップでルックアップを行い、適切な列名を決定します。この制限されたマップに値が存在しない場合、ユーザーは許可されていません。参照マップはグローバル (つまり、すべての可能な値を含む) であってはなりません。それらは、承認された値のみが入力される一時的なマップ/辞書です。