次のようなフォームがあるとします。
<form action="/script.php" method="post">
<input name="my_input" length="80" />
<input type="submit" value="submit" />
</form>
ここで、数値識別子も含めたいと思います。これをチケット ID と呼びます。「これがチケット履歴です。何か追加しますか?」ユーザーはそれを変更できません。
私の質問は...フォーム送信でそのチケットIDを取得する最も安全な方法は何ですか?
それを達成するのに問題はありませんが、私の質問はセキュリティに関するものです。したがって、私が考えることができる変数を元に戻す方法は次のとおりです。
<form action="/script.php" method="post">
<input name="my_input" length="80" />
<input type="hidden" name="ticket_id" value="12345" />
<input type="submit" value="submit" />
</form>
また
<form action="/script.php?ticket_id=12345" method="post">
<input name="my_input" length="80" />
<input type="submit" value="submit" />
</form>
誰かが悪意のある POST を作成して送信し、別のチケットにコメントを追加する可能性があることを懸念しています。つまり、独自のサーバー/ブラウザー/ツールから POST を構成します。私がGETでこれを行っていた場合、彼らは確かにURL変数を変更するだけでそれを行うことができました-POSTでもそれを行うことができますよね?
もちろん、ユーザーがそのチケットを所有していることを確認し、他の検証を行うことはできますが、基本的に、データをユーザーに提示し、HTML フォームで安全に戻すにはどうすればよいでしょうか?
サーバー側で一意のシリアル番号 (「フォーム 12345 はチケット ID 6789 を提示する必要があります」) レコードを作成し、それを確認する以外に何かありますか?
バックエンドで PHP と MySQL を使用していますが、私の質問がこれらのテクノロジに固有のものかどうかはわかりません。