0

PHPでページ間でデータを保存する最良の方法は何ですか? 私はセッションがうまく機能するか、オブジェクトセッション(https://stackoverflow.com/a/5515341/1445985)でさえうまくいくと思っていたでしょう。しかし、私がショッピングカートを作っていたとしましょう。それらのカート/バスケットデータ?とにかく、誰かが他の人のバスケット データを取得できたとしても、誰が気にしますか? 明らかにクレジット カード データなどは有害ですが、注文内のさまざまな製品のリストはまったく心配する必要はありません。

私が現在使用しているショッピング カート (作成していません) が、すべての注文を DB のテーブルに格納し、注文 ID でテーブルをクエリして、すべての注文情報を取得するのを見てきました。これは賢明ですか?

私は常に PHP で物事を行うための最良の方法を見つけようとしていますが、問題は、何かを行うための信頼できる方法が 1 つもないように思われることです。それは悪い考えだと言う人が常にいます。

4

3 に答える 3

5

PHPセッションを安全にするための一般的な情報は次のとおりです。

PHPセッションセキュリティ

そうは言った。あなたが説明したのと同様の方法を使用して、いくつかのカスタムカートを作成しました。DBからの注文IDをCookieに保存します。ユーザーがチェックアウトプロセスを進めると、さまざまなデータベーステーブルに保存されている注文情報を使用してショッピングカートページが作成されます。

しかし、私は必ずしもセキュリティのためにそれをしませんでした。注文をデータベースに保存しておくと、ユーザーのセッションが期限切れになり、カート内のすべてが失われることを心配する必要がなくなります。ブラウザを閉じて翌日戻ってきた場合でも、以前の場所で買い物を続けることができます。注文をデータベースに保存すると、カートをユーザーIDに関連付けることもできるため、さまざまなマシンからログインしても、ショッピングカートの情報を保持できます。

于 2013-03-12T14:51:56.993 に答える
2

PHP セッションは特定の条件下で乗っ取られる可能性がありますが、一般的に安全であると考えられており、説明している状況には十分すぎるはずです。セッション全体で SSL (HTTPS) を使用することを強くお勧めします。

また、可能な限り、CC データをアプリケーションに保持しないでください。

于 2013-03-12T14:57:30.670 に答える
1

問題はPHPのセッションではなく(サーバーがハッキングされた場合を除き、攻撃者はすべてのセッションデータやその他のものに直接アクセスできます)、セッションデータを特定のユーザーに関連付ける方法です。クライアントに送信する必要のあるセッションIDがあります。Cookie内、またはすべてのインバウンドリンクのGETパラメータとして。

これは、誰かがそのセッションIDを傍受して(中間者攻撃)、それを自分で使用できる(つまり、被害者として機能する)ことができることを意味します。または、彼はどういうわけかセッションIDを推測することができます(これはありそうにありません)。

したがって、それを防ぐ唯一の方法はhttps、サーバーとクライアント間のすべての要求を暗号化し、だれもその情報を取得できないようにするを使用することです。

于 2013-03-12T14:51:40.813 に答える