آخرین نسخه از مجموعههای شخص اول برای آزمایش پرچمگذاری ویژگی توسعهدهنده از Chrome 108 آماده است. ما به طور فعال روی مجموعههای شخص اول با هدف حرکت به سمت ارسال کار میکنیم، بنابراین بازخورد را برای این مرحله از آزمایش توسعهدهنده در نظر خواهیم گرفت. تا زمان انتشار Chrome 111 در ابتدای مارس (7 مارس 2023).
بازخورد اکوسیستم موارد استفاده متقابل سایت را برجسته کرده است که وقتی کوکیهای شخص ثالث دیگر در Chrome پشتیبانی نمیشوند تحت تأثیر قرار میگیرند. طرح پیشنهادی First-Party Sets دستهای از موارد استفاده متقابل سایتی را بررسی میکند و به آنها رسیدگی میکند که در آن سایتهای وابسته به یکدیگر رابطهای را به اشتراک میگذارند که میتوان آن را به مرورگر بیان کرد، به طوری که مرورگر بتواند از طرف کاربر و/یا به طور موثر اقدام مناسب را انجام دهد. ارائه آن اطلاعات به کاربر
پیشنهاد به روز شده از دو API (Storage Access API و یک API جدید با نام آزمایشی requestStorageAccessForOrigin
) استفاده میکند تا سایتها را با روشی فعال برای درخواست دسترسی بین سایتی برای کوکیهای خود در یک مجموعه اول شخص ارائه دهد. دستورالعملهای زیر به شما امکان میدهد مجموعههایی را که ممکن است بخواهید برای سایتهای خود ایجاد کنید و نقاط مناسب برای فراخوانی دو API مختلف را آزمایش و تأیید کنید.
نمای کلی First-Party Sets
مجموعههای شخص اول (FPS) یک مکانیسم پلتفرم وب برای توسعهدهندگان است تا روابط بین سایتها را اعلام کنند، به طوری که مرورگرها میتوانند از این اطلاعات برای فعال کردن دسترسی محدود به کوکی بینسایتی برای اهداف خاص و کاربر استفاده کنند. Chrome از این روابط اعلامشده برای تصمیمگیری در مورد اجازه یا ممانعت از دسترسی یک سایت به کوکیهای خود در زمینه شخص ثالث استفاده میکند.

در سطح بالایی، یک مجموعه شخص اول مجموعهای از دامنهها است که برای آن یک «مجموعه اولیه» و بالقوه چند «عضو مجموعه» وجود دارد. فقط نویسندگان سایت می توانند دامنه های خود را به یک مجموعه ارسال کنند و از آنها خواسته می شود که رابطه بین هر "عضو مجموعه" را با "ست اولیه" آن اعلام کنند. اعضای مجموعه می توانند طیفی از انواع دامنه های مختلف را با زیرمجموعه هایی بر اساس موارد استفاده شامل شوند.
برای تسهیل مدیریت هر زیرمجموعه توسط مرورگر با توجه به پیامدهای حریم خصوصی هر زیر مجموعه، ما پیشنهاد می کنیم از Storage Access API (SAA) و requestStorageAccessForOrigin برای فعال کردن دسترسی به کوکی در یک FPS استفاده کنیم.
با SAA، سایتها ممکن است فعالانه درخواست دسترسی بین سایتی کوکی کنند. اگر سایت درخواستکننده و وبسایت سطح بالا در FPS یکسان باشند، Chrome بهطور خودکار درخواست را اعطا میکند. لطفاً برای اطلاعات در مورد نحوه پردازش تماسهای SAA توسط سایر مرورگرها، به مستندات Storage Access API (SAA) مراجعه کنید.
SAA در حال حاضر مستلزم آن است که سند قبل از فراخوانی متدهای API، فعالسازی کاربر را دریافت کند.
این میتواند استفاده از FPS را برای سایتهای سطح بالا که از تصاویر متقابل سایت یا برچسبهای اسکریپت که به کوکیها نیاز دارند، چالشبرانگیز کند. برای رسیدگی به برخی از این چالشها ، یک API جدید به requestStorageAccessForOrigin
پیشنهاد کردهایم تا این تغییر را برای توسعهدهندگان آسانتر کنیم. این API برای آزمایش نیز موجود است.
ارسال را تنظیم کنید
لیست FPS متعارف یک لیست قابل مشاهده برای عموم در قالب فایل JSON خواهد بود که در یک مخزن جدید FPS GitHub قرار دارد، که به عنوان منبع حقیقت برای همه مجموعه ها عمل می کند. Chrome این فایل را مصرف میکند تا در رفتار آن اعمال شود.
برای کسب اطلاعات بیشتر در مورد فرآیند پیشنهادی و الزامات ارسال مجموعه، دستورالعمل های ارسال را بررسی کنید. همچنین میتوانید مجموعهای را برای آزمایش بررسیهای فنی مختلف که ارسالها را تأیید میکند، ارسال کنید. توجه داشته باشید که قبل از اینکه FPS در نسخههای پایدار Chrome در دسترس باشد، همه موارد ارسالی پاک میشوند.
از آنجایی که فرآیند ارسال مجموعه هنوز در حال توسعه فعال است، برای آزمایش محلی، فقط میتوانید مجموعههایی را در خط فرمان ایجاد کنید و آنها را مستقیماً به مرورگر ارسال کنید. برای آزمایش محلی، نیازی به ارسال مجموعه ای به مخزن GitHub برای آزمایش با پرچم های ویژگی نیست.
نحوه تست محلی
پیش نیازها
برای آزمایش FPS به صورت محلی، از Chrome 108 یا بالاتر استفاده کنید که از خط فرمان راه اندازی شده است.
برای پیشنمایش ویژگیهای آتی Chrome قبل از انتشار، نسخه بتا یا قناری Chrome را دانلود کنید.
مثال
google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \
درباره نحوه اجرای Chromium با پرچمها بیشتر بیاموزید.
مراحل
برای فعال کردن FPS به صورت محلی، باید از گزینه --enable-features
کروم با لیستی از پرچمها جدا شده با کاما استفاده کنید که در این بخش توضیح داده شده است و مجموعهای از سایتهای مرتبط را به عنوان یک شی JSON برای ارسال به --use-first-party-set
اعلام کنید. --use-first-party-set
.
FPS را فعال کنید
FirstPartySets
FPS را در کروم فعال می کند.
FirstPartySets
Storage Access API را فعال کنید
StorageAccessAPI
API دسترسی به فضای ذخیرهسازی (SAA) را در Chrome فعال میکند که به iframeهای تعبیهشده اجازه میدهد تا از requestStorageAccess()
برای درخواست دسترسی به کوکیها در زمینه بینسایتی استفاده کنند، حتی زمانی که کوکیهای شخص ثالث توسط مرورگر مسدود شدهاند.
توجه داشته باشید که هنگام فراخوانی، requestStorageAccess()
به یک حرکت کاربر برای حل کردن نیاز دارد. نسخههای آینده Chrome ممکن است مجموعههای مختلفی از الزامات را تحمیل کنند، زیرا مشخصات SAA هنوز در حال تغییر است. برای لیستی از بهبودهای برنامه ریزی شده برای پیاده سازی SAA توسط کروم به اینجا مراجعه کنید.
StorageAccessAPIForOriginExtension
سایتهای سطح بالا را قادر میسازد تا از requestStorageAccessForOrigin()
برای درخواست دسترسی به فضای ذخیرهسازی از طرف مبدا خاصی استفاده کنند. این برای سایتهای سطح بالا که از تصاویر متقاطع یا برچسبهای اسکریپتی که به کوکیها نیاز دارند استفاده میکنند و برخی از چالشهای موجود در پذیرش SAA را برطرف میکند مفید است.
یک مجموعه را به صورت محلی اعلام کنید
مجموعه First-Party مجموعهای از دامنهها است که برای آن یک «مجموعه اولیه» و بالقوه چند «عضو مجموعه» وجود دارد. اعضای مجموعه می توانند طیفی از انواع دامنه های مختلف را با زیرمجموعه هایی بر اساس موارد استفاده شامل شوند.
یک شی JSON ایجاد کنید که حاوی URLهایی باشد که اعضای یک مجموعه هستند و آن را به --use-first-party-set
ارسال کنید.
در مثال زیر، primary
دامنه اصلی را فهرست میکند و associatedSites
دامنههایی را فهرست میکند که الزامات زیرمجموعه مرتبط را برآورده میکنند.
{
"primary": "https://primary.com",
"associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}
مثال:
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"
برای آزمایش محلی، فقط می توانید مجموعه هایی را در خط فرمان ایجاد کنید و آنها را مستقیماً به مرورگر ارسال کنید. برای اهداف آزمایش محلی، اعتبارسنجی مجموعهای وجود نخواهد داشت، اما زمانی که FPS در نسخههای پایدار ارسال میشود، همه مجموعهها باید به مخزن FPS GitHub ارسال شوند و مشمول معیارهای اعتبارسنجی شوند.
FPS UI را فعال کنید
PageInfoCookiesSubpage
نمایش FPS در بخش PageInfo قابل دسترسی از نوار URL را فعال می کند.

PrivacySandboxFirstPartySetsUI
FPS UI گزینه "Allow sites related to see your activity in the group" را در تنظیمات Chrome، در بخش حریم خصوصی و امنیت → کوکی ها و سایر داده های سایت (chrome://settings/cookies) فعال می کند.

بررسی کنید که کوکی های شخص ثالث مسدود شده اند
- در تنظیمات Chrome، به Privacy and Security → Cookies and other site data یا chrome://settings/cookies بروید.
- در تنظیمات عمومی اطمینان حاصل کنید که «مسدود کوکیهای شخص ثالث» فعال است.
- بررسی کنید که گزینه فرعی «Allow sites related to see your activity in the group» نیز فعال باشد.
ملاحظات امنیتی
از آنجایی که Storage Access API به وبسایتها اجازه میدهد در موارد خاص به کوکیهای شخص ثالث دسترسی پیدا کنند، ممکن است برنامههای وب را در معرض حملات بینسایتی و نشت اطلاعات قرار دهد. سایت هایی که در زمینه های بین سایتی به کوکی ها متکی هستند باید از خطرات CSRF و سایر حملات آگاه باشند.
بهبودهای برنامه ریزی شده
برای بهبود این امر، نسخههای آتی Chrome به کنترلهای امنیتی بیشتری نیاز دارند، با هدف اطمینان از انتخاب صریح embeddee. بهبودهای پیشنهادی: فقط بر اساس هر فریم دسترسی را اعطا میکند، برای درخواستهای معتبر به CORS نیاز دارد، و دامنه دسترسی را فقط به مبدا حفظ میکند. می توانید در تجزیه و تحلیل امنیتی اخیر بیشتر بخوانید.
فهرست بهبودهای برنامه ریزی شده برای اجرای SAA توسط Chrome را بررسی کنید.
توجه داشته باشید که Chrome فقط کوکیهایی را با علامت SameSite=None در زمینههای تعبیهشده بین سایتی ارسال میکند، جایی که Storage Access API مرتبط است. با این حال، تا زمانی که همه مرورگرها دسترسی پیشفرض به آن کوکیها را منسوخ نکنند، نمیتوان فرضی در مورد محل استفاده از کوکی داشت. فرض اینکه دسترسی فقط در یک FPS مجاز است، ایمن نیست و سایت ها باید از بهترین شیوه های امنیتی استاندارد استفاده کنند.
مشارکت کنید و بازخورد را به اشتراک بگذارید
تست محلی فرصتی برای امتحان مکانیسم Storage Access API برای فعال کردن FPS و اشتراکگذاری بازخورد یا هر مشکلی است که با آن مواجه میشوید. علاوه بر این، آزمایش فرآیند ارسال مجموعه در GitHub فرصتی برای به اشتراک گذاشتن تجربه خود در مورد مراحل فرآیند و اعتبارسنجی است. برای مشارکت و به اشتراک گذاشتن بازخورد در مورد پیشنهاد به روز شده:
- مسائل را مطرح کنید و بحث را در GitHub دنبال کنید.
- سؤال بپرسید و به بحثهای مربوط به مخزن پشتیبانی توسعهدهنده Privacy Sandbox بپیوندید.
- راه های مختلف برای ارائه بازخورد در مورد پیشنهادات جعبه ایمنی حریم خصوصی را کاوش کنید.