サイトを構築するために大量のユーザー入力を使用する、しばらくの間実行されているサイトがあります。当然、サイトには数十のフォームがあります。サイトを構築するとき、どのレコードを更新すればよいかがわかるように、非表示のフォーム フィールドを使用してサーバーにデータを返すことがよくありました。
例は次のとおりです。
<input type="hidden" name="id" value="132" />
<input type="text" name="total_price" value="15.02" />
フォームが送信されると、これらの値がサーバーに渡され、渡されたデータに基づいてレコードを更新します (つまり、レコード 132 の価格は 15.02 に変更されます)。
私は最近、firebug のような単純な方法で属性と値を変更できることを知りました。だから...私はfirebugを開き、ID値を「155」に、価格値を「0.00」に変更してから、フォームを送信します。ビオラ!サイトで製品番号 155 を表示すると、現在 $0.00 と表示されています。これは私に関係があります。
クエリ文字列 (簡単に変更できます) または ID をサーバーに渡す非表示の入力要素を使用せずに、どのレコードを更新するかを知るにはどうすればよいですか?
そして、より良い方法がない場合 (この方法でデータを渡す文字通り何千もの Web サイトを見てきました)、ユーザーがこれらの値を変更した場合にサーバー側のデータが実行されないようにするにはどうすればよいでしょうか (または何か問題を解決するのに似ています)?
IDを暗号化してから反対側で復号化することを考えましたが、それでも誰かがIDを変更して、たまたまデータベース内の別のIDと一致するものを取得することから私を守ることはできません.
Cookie についても考えましたが、それらも操作できると聞きました。
何か案は?これは私にとって大きなセキュリティリスクのようです。