گوگل از نسخه مرورگر وب کروم 90 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است در دسترس است. مرورگر کروم با استفاده از آرم های گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدیویی محافظت شده (DRM)، سیستمی برای نصب خودکار به روز رسانی ها و انتقال پارامترهای RLZ هنگام جستجو متمایز می شود. انتشار بعدی کروم 91 برای 25 می برنامه ریزی شده است.
تغییرات کلیدی در کروم 90:
- هنگام تایپ نام میزبان در نوار آدرس، همه کاربران به طور پیش فرض قادر به باز کردن سایت ها از طریق HTTPS هستند. به عنوان مثال، وقتی وارد host example.com میشوید، سایت https://example.com بهطور پیشفرض باز میشود و در صورت بروز مشکل در هنگام باز کردن، به http://example.com بازگردانده میشود. برای کنترل استفاده از «https://» پیشفرض، تنظیم «chrome://flags#omnibox-default-typed-navigations-to-https» پیشنهاد شده است.
- اکنون می توان برچسب های مختلفی را به ویندوز اختصاص داد تا به صورت بصری آنها را در پنل دسکتاپ جدا کرد. پشتیبانی از تغییر نام پنجره سازماندهی کار را هنگام استفاده از پنجره های مرورگر جداگانه برای کارهای مختلف، به عنوان مثال، هنگام باز کردن پنجره های جداگانه برای کارهای کاری، علایق شخصی، سرگرمی، مطالب معوق و غیره ساده می کند. نام از طریق آیتم «افزودن عنوان پنجره» در منوی زمینه که با کلیک راست روی یک ناحیه خالی در نوار برگه ظاهر میشود، تغییر میکند. پس از تغییر نام در پنل برنامه، به جای نام سایت از تب فعال، نام انتخابی نمایش داده می شود که می تواند هنگام باز کردن همان سایت ها در پنجره های مختلف لینک شده به حساب های جداگانه مفید باشد. اتصال بین جلسات حفظ می شود و پس از راه اندازی مجدد، پنجره ها با نام های انتخاب شده بازیابی می شوند.
- قابلیت پنهان کردن «فهرست خواندن» را بدون نیاز به تغییر تنظیمات در «chrome://flags» («chrome://flags#read-later») اضافه کرد. برای مخفی کردن، اکنون می توانید از گزینه "نمایش لیست خواندن" در پایین منوی زمینه استفاده کنید که با کلیک راست بر روی نوار نشانک ها نشان داده شده است. یادآوری می کنیم که در آخرین نسخه زمانی که برخی از کاربران بر روی ستاره در نوار آدرس کلیک می کنند، علاوه بر دکمه "افزودن نشانک"، دکمه دوم "افزودن به لیست خواندن" ظاهر می شود و در گوشه سمت راست پانل نشانکها منوی «لیست خواندن» ظاهر میشود که تمام صفحاتی که قبلاً به فهرست اضافه شدهاند را فهرست میکند. وقتی صفحه ای را از لیست باز می کنید، به عنوان خوانده شده علامت گذاری می شود. صفحات موجود در لیست همچنین می توانند به صورت دستی به عنوان خوانده شده یا خوانده نشده علامت گذاری شوند یا از لیست حذف شوند.
- پشتیبانی از تقسیمبندی شبکه برای محافظت در برابر روشهای ردیابی حرکات کاربر بین سایتها بر اساس ذخیرهسازی شناسهها در مناطقی که برای ذخیره دائمی اطلاعات در نظر گرفته نشدهاند ("Supercookies") اضافه شده است. از آنجایی که منابع ذخیره شده در حافظه پنهان در یک فضای نام مشترک ذخیره می شوند، بدون توجه به دامنه اصلی، یک سایت می تواند با بررسی اینکه آیا آن منبع در حافظه نهان قرار دارد، تعیین کند که سایت دیگری در حال بارگیری منابع است. حفاظت مبتنی بر استفاده از تقسیمبندی شبکه (پارتیشنسازی شبکه) است، که ماهیت آن افزودن به حافظههای پنهان مشترک، اتصال اضافی رکوردها به دامنهای است که صفحه اصلی از آن باز میشود، که پوشش کش را فقط برای اسکریپتهای ردیابی حرکت محدود میکند. به سایت فعلی (اسکریپت یک iframe نمی تواند بررسی کند که آیا منبع از سایت دیگری دانلود شده است). قیمت بخش بندی کاهش کارایی ذخیره سازی است که منجر به افزایش جزئی در زمان بارگذاری صفحه می شود (حداکثر 1.32٪، اما برای 80٪ از سایت ها 0.09-0.75٪).
- لیست سیاه پورتهای شبکه که ارسال درخواستهای HTTP، HTTPS و FTP برای آنها مسدود شده است، به منظور محافظت در برابر حملات Slipstreaming NAT تکمیل شده است، که به هنگام باز کردن یک صفحه وب که بهویژه توسط مهاجم در مرورگر تهیه شده است، اجازه میدهد تا یک شبکه ایجاد کند. اتصال از سرور مهاجم به هر پورت UDP یا TCP در سیستم کاربر، با وجود استفاده از محدوده آدرس داخلی (192.168.xx، 10.xxx). 554 (پروتکل RTSP) و 10080 (مورد استفاده در پشتیبان گیری آماندا و VMWare vCenter) به لیست پورت های ممنوعه اضافه شد. پیش از این، پورت های 69، 137، 161، 554، 1719، 1720، 1723، 5060، 5061 و 6566 مسدود شده بودند.
- پشتیبانی اولیه برای باز کردن اسناد PDF با فرم های XFA در مرورگر اضافه شده است.
- برای برخی از کاربران، بخش تنظیمات جدید "تنظیمات Chrome > حریم خصوصی و امنیت > جعبه ایمنی حریم خصوصی" فعال شده است که به شما امکان می دهد پارامترهای FLoC API را با هدف تعیین دسته علایق کاربر بدون شناسایی فردی و بدون ارجاع به مدیریت کنید. تاریخچه بازدید از سایت های خاص
- اکنون هنگامی که کاربر به نمایه ای متصل می شود که مدیریت متمرکز برای آن فعال است، یک اعلان واضح تر با لیستی از اقدامات مجاز نشان داده می شود.
- رابط درخواست مجوز را کمتر مزاحم کرد. درخواست هایی که کاربر احتمالاً آنها را رد می کند اکنون به طور خودکار با یک نشانگر مربوطه نمایش داده شده در نوار آدرس مسدود می شود، که با آن کاربر می تواند برای مدیریت مجوزها بر اساس هر سایت به رابط مراجعه کند.
- پشتیبانی از برنامههای افزودنی Intel CET (Intel Control-flow Enforcement Technology) برای محافظت از سختافزار در برابر سوء استفادههای ساخته شده با استفاده از تکنیکهای برنامهنویسی بازگشتگرا (ROP، برنامهنویسی بازگشتگرا) گنجانده شده است.
- کار برای انتقال مرورگر به استفاده از اصطلاحات فراگیر ادامه دارد. فایل "master_preferences" به "Initial_preferences" تغییر نام داده است تا از آسیب رساندن به احساسات کاربرانی که کلمه "master" را اشاره ای به بردگی سابق اجداد خود می دانند، جلوگیری شود. برای حفظ سازگاری، پشتیبانی از "master_preferences" برای مدتی در مرورگر باقی خواهد ماند. پیش از این، مرورگر قبلاً از استفاده از کلمات "لیست سفید"، "لیست سیاه" و "بومی" خلاص شده بود.
- در نسخه اندروید، هنگامی که حالت صرفه جویی در ترافیک "Lite" فعال است، هنگام بارگیری ویدیو هنگام اتصال از طریق شبکه های اپراتورهای تلفن همراه، میزان بیت کاهش می یابد که این امر باعث کاهش هزینه های کاربرانی می شود که تعرفه های مبتنی بر ترافیک را فعال کرده اند. حالت "Lite" همچنین فشرده سازی تصاویر درخواست شده از منابع عمومی (بدون نیاز به احراز هویت) را از طریق HTTPS فراهم می کند.
- انکودر فرمت ویدئویی AV1 اضافه شده است که به طور ویژه برای استفاده در کنفرانس های ویدئویی بر اساس پروتکل WebRTC بهینه شده است. استفاده از AV1 در ویدئو کنفرانس افزایش راندمان فشرده سازی و امکان پخش در کانال های با پهنای باند 30 کیلوبیت بر ثانیه را ممکن می سازد.
- در جاوا اسکریپت، اشیاء Array، String و TypedArrays متد ()at را پیادهسازی میکنند که به شما امکان میدهد از نمایهسازی نسبی استفاده کنید (موقعیت نسبی به عنوان شاخص آرایه مشخص میشود)، از جمله تعیین مقادیر منفی نسبت به انتها (به عنوان مثال، "arr.at(-1)" آخرین عنصر آرایه را برمی گرداند).
- جاوا اسکریپت ویژگی ".indices" را برای عبارات منظم اضافه کرده است که حاوی آرایه ای با موقعیت های شروع و پایان گروه های منطبق است. ویژگی فقط هنگام اجرای عبارت منظم با پرچم "/d" پر می شود. const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indice[0]); // 0 — همه گروه های مطابقت // → [0, 2] console.log(m.indices[1]); // 1 اولین گروه از منطبقات است // → [0, 1] console.log(m.indices[2]); // 2 - گروه دوم مسابقات // → [1، 2]
- عملکرد ویژگی های "super" (به عنوان مثال، super.x) که حافظه پنهان درون خطی برای آنها فعال است، بهینه شده است. عملکرد استفاده از "super" اکنون به عملکرد دسترسی به ویژگی های معمولی نزدیک شده است.
- فراخوانی توابع WebAssembly از جاوا اسکریپت به دلیل استفاده از استقرار درون خطی به طور قابل توجهی تسریع شده است. این بهینهسازی فعلاً آزمایشی است و نیاز به اجرا با پرچم "-turbo-inline-js-wasm-calls" دارد.
- اضافه شده WebXR Depth Sensing API، که به شما امکان می دهد فاصله بین اشیاء در محیط کاربر و دستگاه کاربر را تعیین کنید، به عنوان مثال، برای ایجاد برنامه های واقعیت افزوده واقعی تر. یادآوری می کنیم که WebXR API به شما امکان می دهد کار را با کلاس های مختلف دستگاه های واقعیت مجازی، از کلاه ایمنی سه بعدی تا راه حل های مبتنی بر دستگاه های تلفن همراه، یکسان کنید.
- ویژگی WebXR AR Lighting Estimation تثبیت شده است و به جلسات WebXR AR اجازه می دهد تا پارامترهای نور محیط را تعیین کنند تا به مدل ها ظاهر طبیعی تر و ادغام بهتر با محیط کاربر بدهد.
- حالت Origin Trials (ویژگیهای آزمایشی که نیاز به فعالسازی جداگانه دارند) چندین API جدید را اضافه میکند که در حال حاضر محدود به پلتفرم اندروید هستند. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های دانلود شده از localhost یا 127.0.0.1 یا پس از ثبت نام و دریافت یک توکن خاص است که برای مدت محدودی برای یک سایت خاص معتبر است.
- متد getCurrentBrowsingContextMedia() که امکان گرفتن یک جریان ویدیویی MediaStream را که محتویات برگه فعلی را منعکس می کند را ممکن می سازد. برخلاف روش getDisplayMedia() مشابه، هنگام فراخوانی getCurrentBrowsingContextMedia()، یک گفتگوی ساده به کاربر ارائه می شود تا عملیات انتقال ویدئو با محتوای برگه را تایید یا مسدود کند.
- Insertable Streams API، که به شما امکان میدهد جریانهای رسانه خام ارسال شده از طریق MediaStreamTrack API مانند دادههای دوربین و میکروفون، نتایج ضبط صفحه یا دادههای رمزگشایی کدک میانی را دستکاری کنید. از رابط های WebCodec برای ارائه فریم های خام استفاده می شود و جریانی مشابه آنچه WebRTC Insertable Streams API بر اساس RTCPeerConnections ایجاد می کند، تولید می شود. از جنبه عملی، API جدید قابلیت هایی مانند استفاده از تکنیک های یادگیری ماشینی برای شناسایی یا حاشیه نویسی اشیاء در زمان واقعی یا اضافه کردن افکت هایی مانند برش پس زمینه قبل از رمزگذاری یا پس از رمزگشایی توسط یک کدک را امکان پذیر می کند.
- توانایی بسته بندی منابع در بسته ها (Web Bundle) برای سازماندهی بارگذاری کارآمدتر تعداد زیادی از فایل های همراه (سبک های CSS، جاوا اسکریپت، تصاویر، iframes). از جمله کاستیهای موجود در پشتیبانی موجود از بستهها برای فایلهای جاوا اسکریپت (پک وب)، که Web Bundle در تلاش است تا آنها را برطرف کند: خود بسته، اما نه اجزای آن، میتواند در کش HTTP ختم شود. کامپایل و اجرا فقط پس از دانلود کامل بسته می تواند شروع شود. منابع اضافی مانند CSS و تصاویر باید در قالب رشته های جاوا اسکریپت کدگذاری شوند، که اندازه را افزایش می دهد و به مرحله تجزیه دیگری نیاز دارد.
- پشتیبانی از مدیریت استثنا در WebAssembly.
- Declarative Shadow DOM API را برای ایجاد شاخههای ریشه جدید در Shadow DOM تثبیت کرد، به عنوان مثال برای جدا کردن یک سبک عنصر وارد شده شخص ثالث و زیرشاخه DOM مرتبط با آن از سند اصلی. API اعلانی پیشنهادی به شما امکان می دهد فقط از HTML برای برداشتن پین شاخه های DOM بدون نیاز به نوشتن کد جاوا اسکریپت استفاده کنید.
- ویژگی Aspect-ratio CSS، که به شما امکان می دهد صریحاً نسبت ابعاد را به هر عنصر متصل کنید (برای محاسبه خودکار اندازه از دست رفته در هنگام تعیین ارتفاع یا عرض)، توانایی درونیابی مقادیر در طول انیمیشن را پیاده سازی می کند (انتقال هموار از یک). نسبت تصویر به دیگری).
- قابلیت انعکاس وضعیت عناصر HTML سفارشی در CSS از طریق شبه کلاس ":state()" اضافه شده است. این عملکرد با قیاس با توانایی عناصر استاندارد HTML برای تغییر وضعیت خود بسته به تعامل کاربر پیاده سازی می شود.
- ویژگی CSS "appearance" اکنون از مقدار "auto" پشتیبانی می کند که به طور پیش فرض برای آن تنظیم شده است و و در پلتفرم اندروید به علاوه برای ، ، ، و .
- پشتیبانی از مقدار «کلیپ» به ویژگی «سرریز» CSS اضافه شده است، وقتی تنظیم شود، محتوایی که فراتر از بلوک است، بدون امکان اسکرول تا سقف سرریز مجاز بلوک بریده میشود. مقداری که تعیین میکند قبل از شروع برش، محتوا تا چه اندازه میتواند از مرز واقعی جعبه فراتر رود، از طریق ویژگی جدید CSS "overflow-clip-margin" تنظیم میشود. در مقایسه با "سرریز: پنهان"، استفاده از "سرریز: کلیپ" امکان عملکرد بهتر را فراهم می کند.
- هدر Feature-Policy HTTP با یک هدر Permissions-Policy جدید جایگزین شده است تا واگذاری مجوزها و فعال کردن ویژگی های پیشرفته را کنترل کند که شامل پشتیبانی از مقادیر فیلد ساختاریافته است (به عنوان مثال، اکنون می توانید "Permissions-Policy: geolocation" را مشخص کنید. =()" به جای "ویژگی- سیاست: موقعیت جغرافیایی "هیچ").
- حفاظت تقویت شده در برابر استفاده از بافرهای پروتکل برای حملات ناشی از اجرای گمانه زنی دستورالعمل ها در پردازنده ها. حفاظت با افزودن نوع MIME "application/x-protobuffer" به لیست انواع MIME هرگز بو داده نشده، که از طریق مکانیسم Cross-Origin-Read-Blocking پردازش می شود، اجرا می شود. قبلاً نوع MIME "application/x-protobuf" قبلاً در لیست مشابهی گنجانده شده بود، اما "application/x-protobuffer" کنار گذاشته شد.
- File System Access API توانایی جابجایی موقعیت فعلی یک فایل را به فراسوی انتهای آن پیادهسازی میکند و شکاف حاصل را با صفر در طول نوشتن بعدی از طریق فراخوانی ()FileSystemWritableFileStream.write پر میکند. این ویژگی به شما امکان میدهد فایلهای پراکنده با فضاهای خالی ایجاد کنید و سازماندهی نوشتن در جریان فایل را با ورود نامرتب بلوکهای داده به طور قابل توجهی ساده میکند (به عنوان مثال، این کار در BitTorrent انجام میشود).
- اضافه شدن سازنده StaticRange با اجرای انواع سبک وزن که نیازی به به روز رسانی تمام اشیاء مرتبط با هر بار تغییر درخت DOM ندارند.
- قابلیت تعیین پارامترهای عرض و ارتفاع برای عناصر را پیاده سازی کرد در داخل عنصر مشخص شده است . این ویژگی به شما اجازه می دهد تا نسبت ابعاد را برای عناصر محاسبه کنید ، به قیاس با نحوه انجام آن برای ، و .
- پشتیبانی غیر استاندارد از کانال های داده RTP از WebRTC حذف شده است و توصیه می شود به جای آن از کانال های داده مبتنی بر SCTP استفاده کنید.
- ویژگیهای navigator.plugins و navigator.mimeTypes اکنون همیشه یک مقدار خالی برمیگردانند (پس از پایان پشتیبانی Flash، دیگر به این ویژگیها نیازی نبود).
- بخش بزرگی از پیشرفتهای کوچک در ابزارهای توسعهدهندگان وب ایجاد شده است و یک ابزار جدید اشکالزدایی CSS، flexbox، اضافه شده است.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 37 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. به عنوان بخشی از برنامه پاداش نقدی برای کشف آسیبپذیریها برای نسخه فعلی، گوگل ۱۹ جایزه به ارزش ۵۴۰۰۰ دلار (یک جایزه ۲۰۰۰۰ دلاری، یک جایزه ۱۰۰۰۰ دلاری، دو جایزه ۵۰۰۰ دلاری، سه جایزه ۳۰۰۰ دلاری، یک جایزه ۲۰۰۰ دلاری، یک جایزه ۱۰۰۰ دلاری، یک جایزه ۱۰۰۰ دلاری، یک جایزه ۱۰۰۰ دلاری )). اندازه 19 جایزه هنوز مشخص نشده است.
به طور جداگانه می توان به این نکته اشاره کرد که دیروز پس از تشکیل نسخه اصلاحی 89.0.4389.128، اما قبل از انتشار کروم 90، یک اکسپلویت دیگر منتشر شد که از یک آسیب پذیری 0 روزه جدید استفاده می کرد که در کروم 89.0.4389.128 رفع نشده بود. . هنوز مشخص نیست که آیا این مشکل در کروم 90 برطرف شده است یا خیر. مانند مورد اول، این اکسپلویت تنها یک آسیبپذیری را پوشش میدهد و حاوی کدی برای دور زدن انزوا جعبه ایمنی نیست (هنگام اجرای Chrome با پرچم «--no-sandbox» ، سوء استفاده زمانی رخ می دهد که باز کردن یک صفحه وب در پلت فرم ویندوز به شما امکان می دهد Notepad را اجرا کنید. آسیب پذیری مرتبط با اکسپلویت جدید بر فناوری WebAssembly تأثیر می گذارد.
منبع: opennet.ru