0

RESTful API 中心の Web アプリケーションを作成しています。ユーザーがログインすると、セッションが期限切れになるまでデータにアクセスするために使用されるセッション ID とログイン キーを受け取ります。セッションがメモリに保存されている場合、Web アプリケーション (および場合によってはモバイル アプリケーション) は、ページが読み込まれるたびに API を呼び出してユーザー情報を取得します。この API 呼び出しをできる限り最適化することに取り組んでいますが、この情報をキャッシュすることに意味があるのだろうかと考えています。

ユーザー データを含むすべてのテーブルには、更新されたタイムスタンプが含まれています (Postgres の更新ごとにトリガーされます)。したがって、オプションのcache_timestampパラメーターを受け入れるように API を変更できます。API はまず、そのタイムスタンプ以降に変更されたユーザー データのテーブルがあるかどうかを確認します。存在する場合は、更新されたユーザー データが返されます。そうでない場合、304 not modified が返され、アプリケーションはキャッシュを使用します。

私の質問は、機密性が高すぎてメモリに保存できない情報はどれですか (PHP セッションを使用)。現在、情報には、プロファイル (名前、会社など)、連絡先 (電子メール、電話)、設定 (ニュースレター、通知)、支払い情報 (プラン、試用、Stripe を参照する顧客 ID) などの情報が含まれています。

エッジにあると思うのは支払い情報だけですが、API キーが侵害されない限り、Stripe からのデータにアクセスできないはずです。

4

2 に答える 2

2

I'm not a Security expert, but since the sessions are stored on the server, the only way for an attacker to access the data is to have gained some privileges already.

You can look at this interesting post PHP Session Fixation / Hijacking about how to secure more your sessions.

If the user's session got hijacked, then there is nothing to do, the attacker will access the data like if it was the user in question.

If the attacker can exploit a fail related to your server, then he should probably be able to read the session data (which is stored serialized in some files by default).

So, crypting the sensitive data, can prevent him from reading it raw.

于 2013-04-07T04:55:31.923 に答える
1

私の意見も同じです。支払い情報はセッション変数に保存する必要がありますが、APIキーがないとアクセスできないと言っています。あなたは安全な側にいると思います。

于 2013-04-07T04:47:37.090 に答える