گوگل از نسخه مرورگر وب کروم 97 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که به عنوان پایه کروم عمل می کند، در دسترس است. مرورگر کروم با استفاده از نشانوارههای گوگل، وجود سیستمی برای ارسال اعلانها در صورت خرابی، ماژولهایی برای پخش محتوای ویدیویی محافظت شده از کپی (DRM)، سیستمی برای نصب خودکار بهروزرسانیها و انتقال پارامترهای RLZ در هنگام خرابی متمایز میشود. جستجوکردن. برای کسانی که به زمان بیشتری برای بهروزرسانی نیاز دارند، یک شاخه Extended Stable جداگانه وجود دارد و پس از آن 8 هفته بهروزرسانی میشود که نسخه قبلی Chrome 96 را تشکیل میدهد. نسخه بعدی Chrome 98 برای 1 فوریه برنامهریزی شده است.
تغییرات کلیدی در کروم 97:
- برای برخی از کاربران، پیکربندی کننده از یک رابط جدید برای مدیریت داده های ذخیره شده در سمت مرورگر ("chrome://settings/content/all") استفاده می کند. تفاوت اصلی رابط کاربری جدید تمرکز آن بر تنظیم مجوزها و پاک کردن همه کوکیهای سایت به طور همزمان، بدون امکان مشاهده اطلاعات دقیق درباره کوکیها و حذف انتخابی کوکیها است. به گفته گوگل، دسترسی به مدیریت کوکیهای فردی برای یک کاربر معمولی که پیچیدگیهای توسعه وب را نمیداند، میتواند منجر به اختلالات غیرقابل پیشبینی در عملکرد سایتها به دلیل تغییرات بدون فکر در پارامترهای فردی و همچنین غیرفعال کردن تصادفی حریم خصوصی شود. مکانیسم های حفاظتی که از طریق کوکی ها فعال می شوند. برای کسانی که نیاز به دستکاری کوکی های فردی دارند، توصیه می شود از بخش مدیریت ذخیره سازی در ابزارهای توسعه دهندگان وب (برنامه/ذخیره/کوکی) استفاده کنند.
- در بلوک حاوی اطلاعات مربوط به سایت، در صورتی که حالت جستجو و بهینه سازی پیمایش در تنظیمات فعال شده باشد، توضیح مختصری از سایت (به عنوان مثال، توضیحی از ویکی پدیا) نمایش داده می شود (گزینه "بهتر کردن جستجوها و مرور").
- پشتیبانی بهبود یافته برای پر کردن خودکار فیلدها در فرم های وب. توصیههایی با گزینههای تکمیل خودکار اکنون با یک جابجایی جزئی نمایش داده میشوند و با نمادهای اطلاعاتی برای پیشنمایش راحتتر و شناسایی بصری ارتباط با فیلد در حال تکمیل ارائه میشوند. به عنوان مثال، نماد نمایه روشن می کند که تکمیل خودکار پیشنهادی بر فیلدهای مربوط به آدرس و اطلاعات تماس تأثیر می گذارد.
- حذف کنترل کننده های نمایه کاربر از حافظه پس از بستن پنجره های مرورگر مرتبط با آنها فعال شد. قبلاً، نمایهها در حافظه باقی میماندند و به انجام کارهای مربوط به همگامسازی و اجرای اسکریپتهای افزودنی پسزمینه ادامه میدادند، که منجر به هدر رفتن غیرضروری منابع در سیستمهایی میشد که از چندین نمایه به طور همزمان استفاده میکردند (به عنوان مثال، نمایه مهمان و پیوند دادن به حساب Google ). علاوه بر این، تمیز کردن کاملتر داده های باقی مانده در حین کار با نمایه تضمین می شود.
- صفحه بهبود یافته با تنظیمات موتور جستجو ("تنظیمات> مدیریت موتورهای جستجو"). فعالسازی خودکار موتورها، اطلاعاتی که در مورد آنها هنگام باز کردن سایت از طریق اسکریپت OpenSearch ارائه میشود، غیرفعال شده است - موتورهای جدید برای پردازش درخواستهای جستجو از نوار آدرس اکنون باید به صورت دستی در تنظیمات فعال شوند (موتورهایی که قبلاً به طور خودکار فعال شده بودند ادامه خواهند داد بدون تغییر کار کنید).
- از 17 ژانویه، فروشگاه وب Chrome دیگر افزونههایی را که از نسخه XNUMX مانیفست کروم استفاده میکنند نمیپذیرد، اما توسعهدهندگان افزونههایی که قبلاً اضافه شدهاند همچنان میتوانند بهروزرسانیها را منتشر کنند.
- پشتیبانی آزمایشی برای مشخصات WebTransport اضافه شده است که یک پروتکل و API جاوا اسکریپت را برای ارسال و دریافت داده بین مرورگر و سرور تعریف میکند. کانال ارتباطی از طریق HTTP/3 با استفاده از پروتکل QUIC به عنوان یک انتقال سازماندهی شده است. WebTransport را می توان به جای مکانیسم WebSockets استفاده کرد که ویژگی های اضافی مانند انتقال چند جریانی، جریان های یک طرفه، تحویل خارج از سفارش، حالت های تحویل قابل اعتماد و غیرقابل اعتماد را ارائه می دهد. علاوه بر این، WebTransport را می توان به جای مکانیزم Server Push که گوگل در کروم کنار گذاشته است، استفاده کرد.
- متدهای findLast و findLastIndex به اشیاء جاوا اسکریپت Array و TypedArrays اضافه شدهاند که به شما امکان میدهد عناصری را با خروجی نتیجه نسبت به انتهای آرایه جستجو کنید. [1,2,3,4،2،0،4].findLast((el) => el % XNUMX === XNUMX) // → XNUMX (آخرین عنصر زوج)
- عناصر HTML بسته (بدون ویژگی "باز"). ، اکنون قابل جستجو و پیوند هستند و هنگام استفاده از جستجوی صفحه و ناوبری قطعه (ScrollToTextFragment) به طور خودکار گسترش می یابند.
- محدودیتهای خطمشی امنیت محتوا (CSP) در سرصفحههای پاسخ سرور اکنون برای کارگران اختصاصی اعمال میشود که قبلاً به عنوان اسناد جداگانه در نظر گرفته میشدند.
- یک درخواست صریح برای مرجع دانلود هر گونه منابع فرعی از شبکه داخلی ارائه شده است - قبل از دسترسی به شبکه داخلی یا میزبان محلی، یک درخواست CORS (به اشتراک گذاری منابع متقاطع) با سربرگ "Access-Control-Request-Private-". Network: true" اکنون به سرور اصلی سایت ارسال می شود که نیاز به تأیید عملیات با بازگرداندن هدر "Access-Control-Allow-Private-Network: true" دارد.
- ویژگی font-synthesis CSS اضافه شده است، که به شما امکان می دهد کنترل کنید که آیا مرورگر می تواند سبک های فونت گمشده (مورب، پررنگ و کوچک) را که در خانواده فونت انتخابی نیستند ترکیب کند یا خیر.
- برای تبدیلهای CSS، تابع ()Perspective یک پارامتر «none» را پیادهسازی میکند، که هنگام سازماندهی انیمیشن به عنوان یک مقدار بینهایت در نظر گرفته میشود.
- هدر HTTP Permissions-Policy (Feature Policy) که برای تفویض اختیار و فعال کردن ویژگی های پیشرفته استفاده می شود، اکنون از مقدار نقشه صفحه کلید پشتیبانی می کند که امکان استفاده از صفحه کلید API را فراهم می کند. متد Keyboard.getLayoutMap () پیادهسازی شده است که به شما امکان میدهد با در نظر گرفتن طرحبندیهای مختلف صفحهکلید، تعیین کنید که کدام کلید فشرده شده است (به عنوان مثال، یک کلید در یک طرح روسی یا انگلیسی فشار داده میشود).
- متد HTMLScriptElement.supports() اضافه شد که تعریف ویژگیهای جدید موجود در عنصر «اسکریپت» را یکسان میکند، برای مثال، میتوانید فهرست مقادیر پشتیبانیشده برای ویژگی «type» را پیدا کنید.
- روند عادی سازی خطوط جدید هنگام ارسال فرم های وب با موتورهای مرورگر Gecko و WebKit مطابقت دارد. عادی سازی فیدهای خط و برگرداندن حمل (جایگزینی /r و /n با \r\n) در کروم اکنون در مرحله نهایی به جای شروع پردازش ارسال فرم انجام می شود (یعنی پردازشگرهای میانی با استفاده از شی FormData داده ها را به صورت مشاهده می کنند. اضافه شده توسط کاربر، و نه به شکل عادی).
- نامگذاری نامهای دارایی برای Client Hints API استاندارد شده است، که به عنوان جایگزینی برای سربرگ User-Agent در حال توسعه است و به شما امکان میدهد تا دادههای مربوط به مرورگر و پارامترهای سیستم خاص (نسخه، پلتفرم و غیره) را تنها پس از آن به صورت انتخابی ارائه کنید. درخواست سرور ویژگی ها اکنون با پیشوند "sec-ch-" مشخص می شوند، به عنوان مثال، sec-ch-dpr، sec-ch-width، sec-ch-viewport-width، sec-ch-device-memory، sec-ch-rtt ، sec- ch-downlink و sec-ch-ect.
- مرحله دوم قطع پشتیبانی از WebSQL API اعمال شده است که اکنون دسترسی اسکریپت های شخص ثالث به آن مسدود خواهد شد. در آینده، ما قصد داریم به تدریج پشتیبانی از WebSQL را بدون توجه به زمینه استفاده به طور کامل متوقف کنیم. موتور WebSQL مبتنی بر کد SQLite است و می تواند توسط مهاجمان برای سوء استفاده از آسیب پذیری ها در SQLite استفاده شود.
- برای پلتفرم ویندوز، مجموعهای با بررسیهای یکپارچگی جریان اجرا (CFG، Control Flow Guard) گنجانده شده است که تلاشها برای درج کد در فرآیند Chrome را مسدود میکند. علاوه بر این، جداسازی جعبه ایمنی در حال حاضر برای سرویسهای شبکه در حال اجرا در فرآیندهای جداگانه اعمال میشود و قابلیتهای کد در این فرآیندها را محدود میکند.
- Chrome for Android دارای مکانیزمی برای بهروزرسانی پویا گزارش گواهیهای صادر شده و لغو شده (Certificate Transparency) است که قبلاً در هزینههای سیستمهای دسکتاپ فعال شده بود.
- بهبودهایی در ابزارهای توسعه دهندگان وب ایجاد شده است. پشتیبانی آزمایشی برای همگام سازی تنظیمات DevTools بین دستگاه های مختلف اجرا شده است. یک پنل Recorder جدید اضافه شده است که با آن می توانید اقدامات کاربر را در صفحه ضبط، پخش و تجزیه و تحلیل کنید.
هنگام نمایش خطاها در کنسول وب، شماره ستون های مرتبط با مشکل نمایش داده می شود که برای اشکال زدایی مشکلات در کد جاوا اسکریپت کوچک شده راحت است. لیست دستگاه هایی که می توان برای ارزیابی نمایش صفحه در دستگاه های تلفن همراه شبیه سازی کرد، به روز شده است. در رابط ویرایش بلوک های HTML (Edit as HTML)، برجسته سازی نحو و قابلیت تکمیل خودکار ورودی اضافه شده است.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 37 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. یکی از آسیبپذیریها به وضعیت یک مسئله حیاتی اختصاص داده شده است، که به فرد امکان میدهد تمام سطوح محافظت از مرورگر را دور بزند و کد را در سیستم، خارج از محیط sandbox اجرا کند. جزئیات مربوط به آسیبپذیری حیاتی (CVE-2022-0096) هنوز فاش نشده است؛ فقط مشخص است که با دسترسی به یک منطقه حافظه آزاد شده در کد کار با حافظه داخلی (Storage API) مرتبط است.
به عنوان بخشی از برنامه پرداخت جوایز نقدی برای کشف آسیبپذیریها برای نسخه فعلی، گوگل 24 جایزه به ارزش 54 هزار دلار (سه جایزه 10000 دلاری، دو جایزه 5000 دلاری، یک جایزه 4000 دلاری، سه جایزه 3000 دلاری و یک جایزه 1000 دلاری) پرداخت کرد. اندازه 14 جایزه هنوز مشخص نشده است.
منبع: opennet.ru