0

私はphpウェブアプリケーションを開発しています。

オブジェクトを取得するときに、オブジェクトの主キー値をWebフォームに保存して、取得したキーを使用して同じレコードを参照することで関連するレコードを更新できるようにする方法について、少し興味がありますか?

たとえば。pk_id=10の従業員レコードを取得します。ユーザーがオブジェクトを変更するときは、pk_id 10のオブジェクトを更新する必要があるため、pk_idをフォームに保存する必要があります。

非表示の入力フィールドに値を格納することを考えました。これは問題になりますか。

どのように専門家はこれを行いますか?

rgds Rifky

4

4 に答える 4

2

非表示の入力フィールドは問題なく、適切なソリューションです。

セッションに保存することもオプションですが、すでにセッションを頻繁に使用している場合は、非表示の入力を使用することもできますが、セッションはほとんど最も安全なオプションです。

考えられる問題の1つは、フォームを送信する前に、誰かがhtmlフォームの非表示の入力の値を変更する可能性があることです。しかし、それは非常にありそうにありません。

于 2012-05-10T11:31:22.197 に答える
1

3つの方法:

  • 使用してくださいhidden input、それが彼らの目的です。

  • 更新URLのgetフィールドにIDを含めることができます。(like
    update.php?pk_id=17)フォームをそれ自体に投稿する場合でも、IDを取得できます。

  • IDを非表示にする場合は、セッションにIDを保存できます。

于 2012-05-10T11:28:31.527 に答える
1

2つの方法があります。@marvin(つまりクライアント側)によって識別される方法と、セッション内の方法です。

クライアント側の識別を使用する場合は、非常に注意してください。あなたの例では、誰かが主キーを知っていれば、給与を100万ドルに設定するのは簡単です。@Thomas Hudspith-Tathamは、これはありそうもないと言っています-特に公開されているWebサイトでは、私は同意しません。インターウェブの初期には、アプリケーションがページ間でデータを転送するためにクライアント側のメカニズムを使用していたため、eコマースストアがハイエンド製品の注文を0.01ドルで尊重しなければならない場合がいくつかありました。

ちなみに、データを変更するときは、GETではなくPOSTを使用することをお勧めします。したがって、非表示フィールドはURLパラメーターよりもスタイル的に優れています。

セッションの使用は少し面倒です。負荷分散とCookieの期限切れについて心配する必要がありますが、攻撃者が変更したくないデータを変更することははるかに困難です。

于 2012-05-10T13:41:21.007 に答える
-1

はい。あなたが正しいです。主キーIDを非表示フィールドに保存することをお勧めします。必要に応じて、URLから同じものを渡すこともできます。(パラメータを取得)

于 2012-05-10T11:26:52.107 に答える