0

非表示のフォームを使用して値を送信しています。送信ボタン付き。

そのような:

<form action="users.php?action=edit" method="POST">
<input type="hidden" name="first_name" value="Josh" size="20" maxlength="19"/>
<input type="submit" name="done" value="Done"/>
</form>

そして、作成している次のフォームでこれらの値を使用しています。このようにするか、データベースからデータを取得するか、どちらが良いかわかりません。また、どちらがより安全ですか?

4

4 に答える 4

2

速度は可変です。

より重要な問題は、何がより安全かということです。フォームに情報を保存すると、悪意のあるユーザーによって情報が変更される可能性があります。

Web フォームからのデータは決して信用しないでください。常にチェックして確認してください。

初期の Web ストアがフォームの非表示フィールドに価格を保存し、販売レベルに満足していたのに、その販売価格が大幅に値下げされていたことを発見したという、おそらく外典的な話を覚えています。悪意のある消費者による現場干渉。

http://www.ethicalhacker.net/content/view/43/2/を参照

于 2012-10-25T08:57:30.393 に答える
0

データベースからデータを取得していると思います。最初に人々がデータを操作でき、次にあなたのデータベースがlocalhostまたは同じネットワーク内にあると思います-これにより、インターネット経由で送信するよりも高速になり、安全になります!

于 2012-10-25T09:05:28.843 に答える
0

データは改ざんできないため、データベースからデータを取得する方が安全です。非表示フィールドに配置すると、変更可能なphp変数の値が表示されます。

于 2012-10-25T09:00:43.440 に答える
0

「Josh」が編集対象のユーザーであり、ログインした「Josh」ユーザーのみが編集できると思います。非表示フィールドのデータをユーザーに表示することを躊躇しない場合は、非表示フィールドを使用できます。

ユーザーがフォーム フィールドの値を改ざんできることに注意してください。ユーザーが HTTP リクエストで追加/変更できるものはすべて、サーバーで検証する必要があります (妥当な値である場合、ユーザーが実際に「Josh」などを編集する権利を持っている場合)。

あなたの例では、非表示フィールドを使用する理由は実際にはありません:

<form action="users.php?action=edit&first_name=Josh" method="POST">
<input type="submit" name="done" value="Done"/>
</form>

速度について: データが少ない場合、データベースへのラウンドトリップ (接続、トランザクション、切断) 全体を回避するため、非表示フィールド バージョンの方がおそらく高速です。PHP は接続プールを保持せず、データベースへの接続にはコストがかかります。

于 2012-10-25T09:02:52.153 に答える