これは、十分な回答だと思っていた他の質問に戻りますが、よく考えてみると、それがそうであったかどうかわかりません(申し訳ありません)。
バックグラウンダー:
フォームを動的に生成しています。データベースからコントロールを取得しています。
各コントロールを、ユーザーのセッション ID ではないデータベース ID に関連付ける必要があります。私は現在、自分のIDをWebコントロールのIDに他のものと一緒に保存して、自分がしていることを一意/明確にすることでこれを行っています。
ポストバックで、Web ページのすべてのコントロールを反復処理して、特別な識別子、つまり MyGeneratedTextBox_ID_Unique をチェックします。このプロセスにより、コントロールが私が生成したものであることを識別し、この入力フィールドの ID を取得するという 2 つの重要なステップが可能になります。
そして、これはすべて機能しますが、それでもセキュリティが心配です。この場合、実際のデータベース ID を表示してもセキュリティ上の問題は見られませんが、望ましくないことに同意します。ただし、次の可能性が懸念されます。
ユーザーが悪意のあるコントロールを私のコレクションに追加し、それを SQL インジェクション攻撃に使用できる場合。
よりアカデミックですが、ユーザーが何らかの方法でフィールドのデータを保存できる場合、ID を変更してもアクセスできません。
これは、それを行う方法の「ハック」であることに同意します。しかし、私の質問は、それはセキュリティ上のリスクであり、ハッキングの少ない方法でそれを行う「簡単な」方法はありますか?
ページで作成/インスタンス化されたコントロールのみがコントロール リストに追加されると仮定します。したがって、すべてのコントロールをサーバー側で作成する必要があるため、セキュリティの問題は解決されますが、検証したいだけです。再度、感謝します。
PS: コントロールごとにプロパティを追加し、viewstate を暗号化すると、もう少し安全になることがわかりました。