0

こんにちは、親愛なる皆さん、あなたはいつも私がさらに進むのを助けてくれます.

フォームに問題があります。

送信後にユーザー操作から保護するにはどうすればよいですか?

<form method="post" action="/selling.php" />
<input type="hidden" name="user" value="{$_SESSION['session_username']}" />
<input type="hidden" name="price" value="$price" />
<input type="hidden" name="nick" value="$nick" />
<input type="hidden" name="class" value="$class" />
<input type="hidden" name="amount" value="$amount" />
<input type="submit" name="reset" class="input_submit" value="Submit" />
</form>";

それはどのように機能しますか?

ユーザーが私のウェブサイトにログインし、「$username」に基づいて DB (ニックネーム、クラス) から情報を取得し、いくつかの条件に基づいて「$mount」と「$price」を作成します。

すべてが自動的に行われ、ユーザーは「送信」ボタンをクリックするだけです。

しかし、彼はフォーム全体を操作して、たとえば「$price」を 0 に変更できることがわかりました...

どうすればいいですか?

4

1 に答える 1

1

どこから派生$amount$priceても、フォームを出力する前に計算されているようです。つまり、これら2つの値を次のようなセッションに保存することもできます。

$_SESSION['amount'] = $amount;
$_SESSION['price'] = $price;

そしてそれらを完全に形で取り除きます。次の手順を実行してアクセスを試みる前にセッションを開始する限り、selling.phpでこれらのセッションにアクセスできます。

session_start();

これにより、機密情報はフォーム/ソースコードに表示されなくなりますが、selling.phpでは引き続き利用できます。

フロントエンドではなく、常にバックエンド、つまりphpコードで検証を行うことを忘れないでください。

于 2012-11-17T01:05:50.173 に答える