من برای جلوگیری از حمله CSRF درون صفحه یک Token قرار می دهم و هنگام Submit فرم، Token را با متغیری که در Session رجیستر شده مقایسه میکنم.
اما مشکل من این هست که اگر یک کاربر بطور همزمان صفحه مورد نظر را در 2 تب جداگانه باز نماید، فقط Token صفحه آخر معتبر می باشد.
برای رفع این مشکل برای هر صفحه یک Token با کلید و مقدار منحصربفرد ایجاد می کنم که هر صفحه Token خودش را داشته باشد.
اما مشکل اینجا هست که خیلی سریع تعداد Token های استفاده نشده در Session زیاد خواهد شد.
برای رفع این مشکل برای هر Token یک Expire تایم قرار دادم که هنگام بررسی صحت Token، ،Token هایی که Expire شده اند حذف می گردد.
آیا راه بهتری برای انجام این کار وجود دارد؟