توسعه نرم افزار رادکام

اخبار، مطالب و رویدادهای مرتبط با توسعه نرم افزار رادکام

مشکل پرداخت از طریق درگاههای اینترنتی پس از بروزرسانی .NET Framework به نسخه 4.8

از نسخه .NET Framework 4.7.2 به بعد امکان تنظیم ویژگی sameSite روی کوکی (Cookie) فراهم شده است. تا قبل از این بروزرسانی، مقدار هدر کوکی sameSite تنظیم نمی شده است که در حقیقت معادل SameSiteMode.None می باشد ولی از ورژن ذکر شده به بعد مقدار پیش فرض هدر کوکی sameSite وقتی مقداری برای آن تنظیم نشود، به صورت پیش فرض مقدار SameSiteMode.Lax درنظر گرفته می شود.

این تغییر مقدار پیش فرض باعث شده است تا ارسال اطلاعات از سایتهای دیگر (مثلا درگاههای پرداخت اینترنتی بانکها) به سایت مبدا با مشکل مواجه شود.

تغییر مقدار پیش فرض ویژگی SameSite برای کوکی باعث می شود تا سایتهای دیگر  وقتی به سایت اصلی از طریق متد POST اطلاعات ارسال می کنند، در Request ارسالی، کوکی مربوط به ASP.NET_SessionId در دسترس درخواست ارسال شده از سایت مزبور نباشد و در نتیجه Session جدیدی ایجاد می شود که این امر باعث می شود موقعی که کاربر از سمت درگاه بانکی به سایت اصلی برمی گردد با صفحه لاگین مواجه شود.
 
با توجه به شیوه عمل درگاههای بانکی، برای حل این مشکل لازم است تا در تگ sessionState در web.config اصلی سایت، ویژگی cookieSameSite مقدار None بگیرد تا امکان POST کردن اطلاعات درگاه بانکی از طریق Session فعلی کاربر به سایت مبدا امکانپذیر باشد (همانند نسخه های قبلی .net):


<sessionState ... cookieSameSite="None" /> 

برای توضیحات بیشتر راجع به ویژگی SameSite در کوکی به صفحات زیر مراجعه کنید:


دوستدار رزم آرا
۱۳۹۸/۰۹/۲۵ United Kingdom
0
1

سلام مطلب شما کمک زیادی کرد. بسیار بسیار سپاسگزارم.

رضا
۱۳۹۸/۱۱/۰۲ Iran
0
1

تشکر, مشکلمون حل شد. البته مشکل ما بعد از اپدیت گرفتن ویندور سرور بوجود امده بود. چون یک پچ امنیتی در رابطه با همین قضیه گرفته بود و مقدار پیش فرض samesite به lax تغییر می کرد.

HR
۱۳۹۸/۱۱/۱۵ Iran
0
1

سلام. مطلب بسیار مفید و فوق العاده ای بود و مشکل من را حل کرد. با تشکر.


نام را وارد کنید
تعداد کاراکتر باقیمانده: 1000
نظر خود را وارد کنید