کوکیها یا فایلهای کوکی، اطلاعاتی هستند که توسط سایتها در سیستم کاربر ذخیره میشوند. این اطلاعات شامل نام کاربری، رمز عبور و تنظیمات دیگر است. با استفاده از کوکی، کاربران میتوانند به سرعت و راحتی وارد سایت شوند بدون این که هر بار نام کاربری و رمز عبور خود را وارد کنند.
اما مشکل اینجاست که کوکیها ممکن است توسط هکرها جاسازی شوند و اطلاعات حساس را از سیستم کاربران بدزدند. برای جلوگیری از این مشکل، باید از کوکیهای امن استفاده کرد.
HttpOnly یک ویژگی امنیتی است که در کوکیها قرار میگیرد. با فعال کردن این ویژگی، کوکیها فقط برای مرورگر در دسترس خواهند بود و هیچ اسکریپتی نمیتواند به آنها دسترسی پیدا کند. این ویژگی امنیتی مانع از حملات XSS میشود.
SameSite یک ویژگی امنیتی دیگر است که در کوکیها قرار میگیرد. با فعال کردن این ویژگی، کوکیها فقط به سایتی که آنها را ایجاد کردهاند ارسال خواهند شد و هیچ سایت دیگری نمیتواند به آنها دسترسی پیدا کند. این ویژگی امنیتی مانع از حملات CSRF میشود.
برای تنظیم ویژگی های HttpOnly و SamiSite اگر از وب سرور Apache استفاده می کنید، فایل کانفیگ آن به نام httpd.conf را با عبارت زیر ویرایش کنید:
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=None; secure
با فعال کردن این تنظیم، مرورگرها قادر به دسترسی به کوکیهای سایت نخواهند بود و تنها درخواستهای HTTP میتوانند از طریق کوکیها ارسال شوند. این کار باعث کاهش احتمال حملات XSS و CSRF میشود. Samesite به مرورگر میگوید که آیا یک کوکی باید به یک سایت خارجی ارسال شود یا نه. اگر samesite برابر با None باشد، مرورگر میتواند کوکی را به سایتهای خارجی ارسال کند و این امر ممکن است باعث حملات CSRF (Cross-Site Request Forgery) شود. بنابراین، بهتر است samesite را برابر با Strict یا Lax قرار داد تا از این نوع حملات جلوگیری شود.
هنگام تنظیم یک کوکی با SameSite=None، وب سایت باید ویژگی Secure را نیز داشته باشد، که تضمین می کند کوکی فقط در پیام های رمزگذاری شده از طریق HTTPS ارسال می شود. در غیر این صورت، مرورگرها کوکی را رد می کنند و تنظیم نمی شود.
پس از ویرایش فایل httpd.conf، وب سرور را ریستارت کنید.