HTMLフォームがあり、ID番号などの非表示の入力がある場合(更新するためにテーブルxのidキーがわかっているため)、それをセキュリティで保護して、ユーザーが単に変更して混乱させることがないようにする方法データベースエントリ?
たとえば、モーダルbootstrap "popup"があります。これは、フォームに非表示の入力を追加するので、モーダルでフォームを送信すると、正しいデータベースキーが送信されて処理されます。
誰かが簡単に変更できます(ヘッダーと再送信の編集は言うまでもありません)。私に何ができる?サイトはユーザー名とパスワードで保護されていますが、それ以外はどうすればよいかわかりません。 SQLインジェクションについては、悪いデータほど心配していません。
他に考えられる唯一のことは、セッション変数に値を格納することです。
ASP.NET Core 2.xとjQueryを使用しています。
これは同様でした 非表示フォームフィールドの保護
あなたはしません。ユーザーは好きなように変更できます。非表示フィールドは、ブラウザーまたはサーバーの観点からは、一般的なフィールドと同じです。
ユーザーが必要とする秘密のデータを保存する場合は、セッションのサーバー側に保存します。それが最速の方法です。
HMACまたはその他のデジタル署名メカニズムを使用できます。たとえば、「非表示」データをページおよびユーザー固有の暗号化キーで暗号化し、送信後にサーバー側でそれを復号化して検証します。これにより、ユーザーによるものか、JavaScriptのフィールド変更バグのような何かによるものかを問わず、アプリケーションでこのような変更を検出できます。
少なくとも1つのフレームワークがこれを実行し、その完全な状態を非表示フィールドにJSON形式(暗号化およびbase64)で格納します。
ここで、関連するデータをサーバー側に単純に保存することよりも優れている主な利点は、サーバー側で必要なストレージが減ることです。この場合、保存する必要があるのは、現在の状態の暗号化キーだけです。
安全を確保するために、暗号化キーは使用ごと(つまり、各ページと各ユーザー)に生成する必要があります。そうしないと、悪意のあるユーザーが実際の生の値を知らなくてもロジックを悪用して、さまざまなページ(およびさまざまなユーザー)の間で非表示フィールドを移動できます。