2016-09-26 12 views
0

私はテーブルを持っています。ユーザーがそのテーブル内の項目をクリックすると、テーブル行のIDを取得してセッション変数を設定し、フォームをロードします。 セッション変数は、追加する必要があるファイルのIDであるため、重要です。期限切れのSESSION変数をリフレッシュする方法はありますか?

フォームデータを入力すると、jqueryを介してphpファイルに送信され、セッション変数を使用してフォームデータをデータベースの特定のエントリに追加します。

これは問題です。フォームが表示されたら、idはセッション変数に入っていますので、フォームに入力する前に一杯のお茶のためにポップアウトすると、セッション変数が期限切れになることがあります。

送信ボタンを押すと、正しいIDが期限切れになるため、追加できません。

私はフォーム上に隠れたIDを使用することを考えましたが、これは非常に安全だとは思わなかった。また、隠しフィールドを使用すると、送信前にデータが改ざんされる可能性があると私は考えました。

期限切れのセッション変数が存在しない場合は、リフレッシュする方法はありますか?

+2

いいえ、実際はありません。なぜタイムアウト期間を延長しないのですか?もしcuppaが15分以上かかると、ユーザーは自分の仕事をしないという苦痛を受けることになります。 –

+1

@JayBlanchard:隠れたフォームフィールドよりもクッキーがどのように安全でしょうか? –

+0

それはもっと安全ではありません@MarcB、私はそれをよりよく説明しているはずです。 –

答えて

1

フォームに隠されたIDを使用するのが正しい方法です。保存する前にユーザーがそのフォーム/ IDを編集できることを確認するだけです。また、変数の通常の衛生検査を行う必要があります。

+0

以前は隠しIDを使用していましたが、この方法を使用すると攻撃が可能であると心配していました。この例ではIDは秘密ではありませんが、IDを変更しないようにするため、追加しないでください。 –

+0

@ThomasWilliams私はあなたの現在のコードがどのように動作しているのか分からず、そのIDがすでにページのHTMLのどこかにあると考えていました。 –

+0

@ThomasWilliams IDを他のものに変更するかどうかは関係ありません。したがって、フォームを保存するときは、そのフォームがそのフォームを表示したり保存したりできるかどうかを確認する必要があります。とにかくやっているはずです。 –

関連する問題