Codeigniter の上に (ショッピング カートを使用して) Web サイトを開発しています。ユーザーがショッピング カート セッションをハッキングするのをより困難にするためにsess_use_database設定を使用したいと考えています。
また、データベース キャッシュを使用して一般的な DB 要求 (ほとんどの DB コンテンツは定期的に変更されないため、「カテゴリの取得」など) を高速化したいので、この設定を有効にしました。
$db['development']['cache_on'] = TRUE;
//where 'development' is my environment
その結果、たとえば次のリクエストで、セッションのコンテンツが更新されていないことがわかりました。
$this->basket_contents = array_values($this->session->userdata('basket_contents'));
また、私はこれを試しました:
$this->db->cache_off();
...セッションリクエストの前ですが、問題は解決しません(直接のDBリクエストではないためだと思います)。
私のセッション設定は次のとおりです。
$config['sess_cookie_name'] = 'str_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
セッション関連の DB リクエストのキャッシュを防止できますか? または、特定のテーブルがキャッシュされないようにしますか?
または、私が考えていなかった別の(おそらく明白な)解決策がありますか?
前もって感謝します。