2016-03-21 5 views
0

セッションが正常に動作しています.TankAuthを使用して複雑なカスタムユーザ権限システムを持っています。私はこのプロジェクトを小さなものとして始めました。それは怪物に変わりました。ほとんどのデータはjavascriptのフロントエンドを介して非同期にフェッチされます。その基本的にAPIをいくつかの例外を除いて。codeigniterの古いコードベース2.1.4ブロックセッションとajax

私の質問はセッションに関するものです。私は、CI 3(またはそれ以降のバージョン)がセッションライブラリを変更して、複数のajax呼び出しが互いにブロックしないようにすることを理解しています。私は複数のajaxリクエストを実行している間に、アプリケーションが遅延時間の後にすべての結果をフェッチすることに気付きました。私はこれがセッションのブロックに起因すると確信していますが、私はセキュリティ上の懸念から修正しようとしています。

セキュリティを危険にさらすことなく、セッションからのajaxコールを互いにブロックする方法を教えてください。

答えて

0

まず第一に、私はここで

...あなたは、2つの異なるものを言葉「ブロック」を使用していると信じて:

私はCI 3(またはどこかそれ以降のバージョン)が変化していることを理解しますセッションライブラリを使用して、複数のajax呼び出しをブロックしないようにします。

そして、ここで:

私は、複数のAjaxを実行している間、私のアプリケーションは、遅延時間後にすべて一緒にフェッチ要求していることに気づきました。それは完全に新しいものと交換して、複数の要求のためだった理由の一つ - 私はセッションの


を遮断するCodeIgniterの3だけのセッションライブラリを変更していないため、これは確信していが互いに干渉しないように(最初の引用)。

しかし、これを達成する方法は、ロックを使用することです(または、2番目の引用符と質問に「ブロッキング」と呼ぶもの)。そして、あなたはこれを避けることはできません。あなたは何ができるか

は、できるだけ早くあなたのリクエストでsession_write_close()を呼んであるとして、彼らもはや$_SESSION配列変更する必要がある - ロックを解放し、現在の要求のためのセッションを閉じて、まだのため$_SESSION内容を保存します読書

+0

はい、あなたの権利。間違った言葉で申し訳ありません。これは、私が安全にsession_write_close()を行うことができる時です。これは私がユーザーを認証するとすぐに行われますか? – Rossidge

+0

それはあなたが決定するまでです - 私が言ったように:あなたが '$ _SESSION'で何も変更しないことを知ったときはいつでも。 – Narf

+0

さて、このような状況で$ _SESSIONを変更することはありませんので、私はそれを閉じるのが良いと思いますか?あなたのコメントのおかげで、私は元の質問に私のエラーを参照してください、私はそれについて、感謝の詳細を考えるようになりました。 – Rossidge

関連する問題