ユーザー アカウントを持つ Web サイトを作成しています。ユーザーアカウントごとに、ユーザーは個人情報の更新、ブログの作成などを行うことができます。ユーザーがブログを編集したい場合、次のフォームがあります (これは簡易版です)。
<form action="goToThisPage.php" method="get">
<input type="hidden" name="blogID" value="4" />
<input type="text" name="blogTitle" value="" />
<textarea name="blogContent"></textarea>
<input type="submit" name="submit" value="Update Blog" />
</form>
ご覧のとおり、このユーザーの blogID は 4 であるため、レコードを更新すると、ブログ テーブルが ID 4 で更新されます。firebug またはその他のスプーフィング手法を使用して、ユーザーはこの ID を 8 などに変更できます。レコード 8 を更新します。これは、他の誰かのエントリである可能性があります。
どうすればこれを防ぐことができますか? これまでに 2 つの方法を考えてきましたが、どの方法が最良のアイデアだと思いますか (または別の方法を提案しますか)。
- ID をランダムな文字列でエンコードし、送信された文字列をデコードして、正しい ID を取得します。
- 数値のままにしておき、データベースクエリで更新されたレコードを確認します。
私は明らかにデータベースクエリを制限したいと思っています.IDをエンコードすることで、より良いオプションだと思います. 皆さんはどう思いますか?
前もって感謝します