値が $_SESSION['userid'] の input=hidden フィールドについて、1 つのトリッキーな問題があります。問題は、誰かがfirebugを開いたときに、値のデータを簡単に変更できることです...どうすればこれを防ぐことができますか?
<input type="hidden" name="id" value="ID" />
できません。おそらく、フォーム送信後に $_POST['id'] === $_SESSION['userid'] を検証して、正しい値を取得したことを確認する必要があります。
クライアント側にあるもの (HTML、JavaScript など) は、理論的にはユーザーが変更できます。したがって、機密データをクライアント側に置かないか、少なくともサーバー側で再確認することをお勧めします。
あなたの例では、それを使用しています SESSION 変数のようです。なぜクライアント側でそれが必要なのですか? このデータが既に $_SESSION にある場合は、直接使用できますか? 受信コードでは、読み取るのではなく、直接読み取る$_POST['id]
だけですか??$_SESSION['userid']
本当にデータを再送信する必要がある場合 (理由を説明する場合)、サーバー側で、現在ログインしているユーザー (または現在セッションにあるもの) と一致することを確認してください。
フォームを自動的に生成するアプリの 1 つで、サーバー側のフィールドの一部を単純に無視し、データベースまたはセッション変数から取得したものに置き換えました。