0

値が $_SESSION['userid'] の input=hidden フィールドについて、1 つのトリッキーな問題があります。問題は、誰かがfirebugを開いたときに、値のデータを簡単に変更できることです...どうすればこれを防ぐことができますか?

<input type="hidden" name="id" value="ID" />
4

2 に答える 2

3

できません。おそらく、フォーム送信後に $_POST['id'] === $_SESSION['userid'] を検証して、正しい値を取得したことを確認する必要があります。

于 2013-10-09T14:12:48.263 に答える
2

クライアント側にあるもの (HTML、JavaScript など) は、理論的にはユーザーが変更できます。したがって、機密データをクライアント側に置かないか、少なくともサーバー側で再確認することをお勧めします。

あなたの例では、それを使用しています SESSION 変数のようです。なぜクライアント側でそれが必要なのですか? このデータが既に $_SESSION にある場合は、直接使用できますか? 受信コードでは、読み取るのではなく、直接読み取る$_POST['id]だけですか??$_SESSION['userid']

本当にデータを再送信する必要がある場合 (理由を説明する場合)、サーバー側で、現在ログインしているユーザー (または現在セッションにあるもの) と一致することを確認してください。

フォームを自動的に生成するアプリの 1 つで、サーバー側のフィールドの一部を単純に無視し、データベースまたはセッション変数から取得したものに置き換えました。

于 2013-10-09T14:15:28.300 に答える