02/06/2020
گوگل نسخه مرورگر وب Chrome 80 را معرفی کرد در همان زمان ، یک نسخه پایدار از پروژه رایگان Chromium ، که پایه و اساس Chrome است ، در دسترس است. مرورگر Chrome با استفاده از آرم های Google ، وجود سیستم اعلان در صورت خرابی ، امکان بارگیری ماژول Flash به صورت تقاضا ، ماژول های پخش محتوای ویدیویی محافظت شده (DRM) ، سیستمی برای نصب خودکار بروزرسانی ها و انتقال در هنگام جستجو برای پارامترهای RLZ مشخص می شود. نسخه بعدی Chrome 81 برای 17 مارس برنامه ریزی شده است.
تغییرات اساسی در Chrome 80:
- برای درصد کمی از کاربران ، یک عملکرد گروه بندی زبانه پیشنهاد شده است که به شما امکان می دهد چندین زبانه با هدف مشابه را در گروه های مجزا بینایی ترکیب کنید. هر گروه می تواند با رنگ و نام خاص خود در ارتباط باشد. کاربرانی که در اولین موج فعال سازی نیستند می توانند پشتیبانی گروهی را از طریق گزینه "chrome: // flags / # tab-group" فعال کنند.

- پشتیبانی را برای عملکرد Scroll-to-Text اضافه کرد ، که به شما امکان می دهد لینک هایی را برای کلمات یا اصطلاحات فردی ایجاد کنید بدون اینکه به طور صریح نشان های موجود در سند را با استفاده از برچسب "یک نام" یا ویژگی "id" ایجاد کنید. نحو اینگونه پیوندها به عنوان یک وب استاندارد تأیید شده است ، که هنوز در مرحله پیش نویس است. ماسک انتقال (در واقع جستجو با پیمایش انجام می شود) با علامت ": ~:" از لنگر معمول جدا می شود. به عنوان مثال ، وقتی پیوند "https://opennet.ru/52312/#:~:text=Chrome" را باز می کنید ، با ذکر اولین کلمه "Chrome" صفحه به سمت موقعیت حرکت می کند و این کلمه برجسته می شود.
- محدودیت شدید تری در انتقال کوکی ها بین سایت ها اعمال شده است ، برای درخواست های غیر HTTPS که ممنوعیت پردازش کوکی های شخص ثالث را که هنگام دسترسی به سایت هایی غیر از دامنه صفحه فعلی تنظیم شده اند ، اعمال شده است. این کوکی ها برای ردیابی حرکات کاربر بین سایتها در کد شبکه های تبلیغاتی ، ابزارک های شبکه های اجتماعی و سیستم های آنالیز وب استفاده می شوند. به یاد بیاورید که برای کنترل انتقال کوکی ها ، از ویژگی SameSite مشخص شده در سربرگ Set-Cookie استفاده می شود ، که اکنون به طور پیش فرض روی "SameSite = Lax" تنظیم شده است و ارسال کوکی ها برای درخواستهای فرعی سایت ، مانند درخواست تصویر یا بارگیری محتوا از طریق iframe از سایت دیگر را محدود می کند. سایتها می توانند با تنظیم صریح SameSite = هیچکدام هنگام تنظیم کوکی ، حالت SameSite را به طور پیش فرض نادیده بگیرند. علاوه بر این ، مقدار SameSite = هیچکدام از کوکی ها فقط در حالت Secure (معتبر برای اتصالات از طریق HTTPS) قابل تنظیم است. این تغییر در مرحله از 17 فوریه آغاز می شود ، ابتدا برای درصد کمی از کاربران و سپس به تدریج گسترش پوشش.
- محافظت در برابر اخطارهای آزار دهنده مربوط به تأیید اختیار. از آنجایی که چنین فعالیتی ، به عنوان مثال ، درخواست نامه های ارسال نامه برای دریافت اعلان های فشار ، کار کاربر را قطع می کند و توجه خود را از اقدامات موجود در گفتگوهای تأیید منحرف می کند ، در Chrome 80 به جای گفتگوی جداگانه ، اکنون می توانید یک نوک اطلاعاتی در نوار آدرس هشدار داده شده در مورد مسدود کردن درخواست مجوز نمایش داده شود سپس آن را به یک نشانگر با تصویر زنگ برجسته تبدیل می کند. با کلیک بر روی نشانگر ، می توانید در هر زمان مناسب مجوز درخواست شده را فعال یا رد کنید. به طور خودکار ، حالت جدید برای کاربرانی که قبلاً چنین درخواستهایی را مسدود کرده اند ، و همچنین برای سایتهایی که درصد زیادی از درخواست ها رد شده اند ، به صورت انتخابی فعال می شوند. برای فعال کردن حالت جدید برای همه درخواست ها ، گزینه خاصی به تنظیمات اضافه شده است (chrome: // flags / # sound-notification-prompt).
- نمایش پنجره های بازشو (فراخوانی با روش windows.open ()) و ارسال درخواستهای همزمان XMLHttpRequest در صفحه نزدیک یا مخفی کردن دستگیرندگان رویداد ممنوع است (بارگیری ، قبل از بارگیری ، صفحه صفحه و تغییر دید).
- محافظت اولیه در برابر بارگذاری محتوای چندرسانه ای مختلط ارائه می شود (هنگامی که منابع با استفاده از پروتکل http: // در صفحه HTTPS بارگیری می شوند). در صفحات باز شده از طریق HTTPS ، اکنون پیوندهای "http: //" به "https: //" در بلوک های مرتبط با پخش فایلهای صوتی و تصویری به طور خودکار جایگزین می شوند. اگر منبع صوتی یا تصویری از طریق https در دسترس نباشد ، بارگیری آن مسدود می شود (به صورت دستی می توانید قفل را از طریق منو مشخص کنید ، از طریق نماد قفل در نوار آدرس قابل دسترسی است).
تصاویر بدون تغییر بارگذاری خواهند شد (از جایگزینی خودکار در Chrome 81 استفاده خواهد شد) ، اما ویژگی های CSP به روزرسانی – ناامن-درخواست ها و محتویات بلوک همه مخلوط برای توسعه دهندگان سایت فراهم شده است تا جایگزین https یا بلوک تصاویر شوند. قبلاً برای اسکریپت ها و iframes ، مسدود کردن محتوای مختلط پیاده سازی شده است.
- خاموش شدن تدریجی پشتیبانی FTP آغاز شده است. به طور پیش فرض ، پشتیبانی FTP هنوز هم حفظ شده است ، اما آزمایشی انجام خواهد شد که پشتیبانی FTP برای درصد مشخصی از کاربران غیرفعال خواهد شد (برای بازگشت ، شما باید با گزینه "–enable-ftp" یک مرورگر را راه اندازی کنید). به یاد بیاورید که در نسخه های قبلی ، محتوای منابع بارگیری شده از طریق ftp: // پروتکل قبلاً در پنجره مرورگر غیرفعال شده بود (برای مثال ، اسناد HTML و پرونده های README متوقف شدند) ، FTP هنگام بارگیری از منابع فرعی از اسناد مجاز نیست و پشتیبانی از پروکسی متوقف شد. برای FTP با این وجود ، هنوز هم امکان بارگیری پرونده ها از طریق لینک مستقیم و نمایش محتوای فهرست ها وجود دارد.
- اضافه شد
توانایی استفاده از تصاویر برداری SVG به عنوان یک تصویر در وب سایت (فاویکون). - این قابلیت را برای غیرفعال کردن انتخابی انواع خاصی از داده های منتقل شده در حین هماهنگ سازی بین مرورگرها در تنظیمات اضافه کرد.
- قانون BlockExternalExtensions برای کاربران شرکت های بزرگ تحت مدیریت مرکزی اضافه شده است ، که نصب افزودنی های خارجی بر روی دستگاه را ممنوع می کند.
- امکان بررسی یک بار کل زنجیره خواص یا تماس ها در جاوا اسکریپت را فراهم کرد. به عنوان مثال ، هنگام دسترسی به "db.user.name.l length" ، قبلاً لازم بود كه قدم به قدم تعریف همه مؤلفه ها را بررسی كنید ، مثلاً از طریق "if (db && db.user && db.user.name)". حالا با کمک عملیات "؟" می توانید بدون بررسی های اولیه به مقدار "db؟ .user؟ .name؟ .l طول" مراجعه کنید و چنین تماس منجر به خطایی نمی شود. در صورت بروز مشکلات (اگر برخی از عناصر به صورت تهی یا نامشخص درمان شوند) ، خروجی مقدار "تعریف نشده" را نشان می دهد.
- یک عملگر اتحادیه منطقی جدید "؟؟" در جاوا اسکریپت ارائه شده است ، که اگر اپراتور سمت چپ NULL یا نامشخص باشد ، و برعکس عملگر راست را باز می گرداند. به عنوان مثال ، "const foo = bar؟" رشته پیش فرض "" اگر نوار تهی باشد ، تخلیه یا مقدار نوار را در غیر این صورت بازمی گرداند ، از جمله وقتی نوار 0 و "است ، برخلاف عملگر ||
- در حالت Origin Trials (ویژگی های آزمایشی که به فعال سازی مجزا نیاز دارند) ، فهرست بندی محتوی API ارائه می شود. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های بارگیری شده از localhost یا 127.0.0.1 یا پس از عبور از ثبت نام و دریافت یک نشانه خاص است که برای مدت زمان محدود برای یک سایت خاص معتبر است. API Indexing Content داده های مربوط به مطالبی را که قبلاً توسط برنامه های وب در حالت برنامه های Progressive Web (PWS) ذخیره شده ذخیره کرده است ، فراهم می کند. این برنامه می تواند داده های مختلفی را در سمت مرورگر از جمله تصاویر ، فیلم ها و مقالات ذخیره کند و در صورت عدم موفقیت اتصال به شبکه ، از آنها با استفاده از Cache Storage API و IndexedDB استفاده کند. API Indexing Content امکان افزودن ، یافتن و حذف منابع مشابه را فراهم می کند. در مرورگر ، این API قبلاً برای شمارش لیست صفحات و داده های چندرسانه ای موجود برای مشاهده آفلاین استفاده شده است.
- رابط برنامه Contact Picker تثبیت شده است و اکنون در خارج از قسمت های آزمایشی Origin توزیع می شود ، به کاربر امکان می دهد تا ورودی ها را از دفترچه آدرس انتخاب کرده و جزئیات خاصی را در مورد آنها به سایت منتقل کند. در صورت درخواست لیستی از خواص مورد نظر تعیین می شود. این خصوصیات به صراحت به کاربر نمایش داده می شود که تصمیم به انتقال یا عدم این خصوصیات می دهد. API را می توان به عنوان مثال ، در سرویس گیرنده پست الکترونیکی مبتنی بر وب برای انتخاب گیرندگان پیام ارسال شده ، در برنامه وب با عملکرد VoIP برای شروع یک تماس به یک شماره خاص یا در شبکه اجتماعی برای جستجوی دوستان قبلاً ثبت شده استفاده کرد. در همین زمان ، در چارچوب دادگاه های مبدا ، برخی از ویژگی های جدید Contact Picker پیشنهاد شده است: علاوه بر نام قبلی ، ایمیل و شماره تلفن ، امکان انتقال آدرس پستی و تصویر اضافه شده است.
- Web Workers روش جدیدی را برای بارگذاری ماژول های ECMAScript پیشنهاد کرده است ، که نیاز به عملکرد importScriptts () را حذف می کند ، که کارگر را هنگام پردازش یک اسکریپت وارداتی مسدود می کند و آن را در یک زمینه جهانی اجرا می کند. روش جدید شامل ایجاد ماژول های ویژه برای Web Workers است که از مکانیسم های استاندارد واردات جاوا اسکریپت پشتیبانی می کنند و می توانند بدون انسداد اجرای کارگر به صورت پویا بارگیری شوند. برای بارگذاری ماژول ها ، یک نوع منبع جدید در سازنده کارگر ارائه می شود – "ماژول":
کارگر = کارگر جدید ('working.js' ، { نوع: "ماژول" })؛ - توانایی داخلی برای پردازش جریان های فشرده شده در جاوا اسکریپت را اجرا کرد ، که به استفاده از کتابخانه های خارجی احتیاج ندارد. API های CompressionStream و DecompressionStream برای فشرده سازی و رفع فشار اضافه می شوند. فشرده سازی با استفاده از الگوریتم های gzip و deflate پشتیبانی می شود.
const compressionReadableStream = inputReadableStream.pipeThrough (CompressionStream جدید ('gzip'))؛ - افزودن ویژگی CSS "خط شکست" در هر نقطه ای که اجازه می دهد سطح سطح هر شخصیت تایپی ، از جمله معافیت های بعدی برای علائم نگارشی ، فضاهای از پیش تعریف شده (
) و وسط کلمات باشد. همچنین ویژگی CSS را اضافه کرده است: "سرریز شدن از هر نقطه" در هر صورت امکان شکستن توالی مداوم کاراکترها در هر نقطه ، اگر خط نتواند موقعیت مناسبی برای شکستن پیدا کند.
- برای محتوای رسانه ای که به شکل رمزگذاری شده پردازش شده اند ، از روش MediaCapactions.decodingInfo () پشتیبانی ارائه شده است ، که اطلاعاتی در مورد قابلیت های مرورگر مربوط به رمزگشایی محتوای محافظت شده ارائه می دهد (برای مثال ، این روش می تواند برای انتخاب سناریوهای روشهای رمزگشایی با کیفیت بالا یا صرفه جویی در انرژی با در نظر گرفتن پهنای باند و اندازه صفحه نمایش موجود).
- روش اضافه شده HTMLVideoElement.getVideoPlaybackQuality () ، که از طریق آن می توانید اطلاعات مربوط به عملکرد پخش فیلم را برای تنظیم میزان بیت ، رزولوشن و سایر پارامترهای ویدیویی دریافت کنید.
- API Handler Payment ، که ادغام با سیستم های پرداخت موجود را ساده تر می کند ، توانایی تفویض پردازش آدرس و اطلاعات تماس را به پردازنده خارجی سیستم پرداخت اضافه کرده است (برنامه سیستم پرداخت ممکن است اطلاعات دقیق تری نسبت به مرورگر داشته باشد).
- پشتیبانی اضافه شده برای هدر HTTP Sec-Fetch-Dest ، که به شما امکان ارسال فراداده اضافی درباره نوع محتوای مرتبط با درخواست را می دهد (برای مثال ، برای درخواست از طریق برچسب img ، نوع "تصویر" است ، برای فونت ها - "فونت" ، برای اسکریپت ها - " "، برای سبک -" سبک "، و غیره). براساس نوع مشخص شده ، سرور می تواند اقدامات لازم را برای محافظت در برابر انواع خاصی از حملات انجام دهد (بعنوان مثال بعید است که پیوندی برای انتقال پول از طریق برچسب img تنظیم شود ، بنابراین چنین درخواست هایی نیازی به پردازش ندارند).
- موتور V8 جاوا اسکریپت برای ذخیره نشانگرها در پشته بهینه شده است. به جای یک مقدار کامل 64 بیتی ، فقط بیت های پایین منحصر به فرد نشانگر ذخیره می شود. چنین بهینه سازی باعث کاهش مصرف حافظه روی پشته 40٪ ، با هزینه کاهش عملکرد 3-8٪ می شود.
- تغییر در ابزار برای توسعه دهندگان وب:
- عملکرد مانیفست AppCache (فناوری سازماندهی کار برنامه وب در حالت آفلاین) توسط دایرکتوری سایت فعلی محدود شده است (اگر مانیفست از سایت www.example.com/foo/bar/ بارگیری شده باشد ، امکان تعریف مجدد URL فقط در داخل وجود خواهد داشت / foo / نوار /) Chrome 82 قصد دارد پشتیبانی از AppCache را به طور کامل حذف کند. دلیل این امر میل به خلاص شدن از شر یكی از بردارها برای حملات مربوط به برنامه نویسی درون سایت است. به جای AppCache ، استفاده از Cache API توصیه می شود.
- پشتیبانی از WebVR 1.1 API منسوخ را قطع کنید ، به جای آن می توانید از API دستگاه WebXR استفاده کنید ، که به شما امکان می دهد برای ایجاد واقعیت مجازی و افزودنی به مؤلفه ها دسترسی پیدا کنید و کار را با کلاسهای مختلف دستگاه ، از کلاه ایمنی واقعیت مجازی ثابت گرفته تا راه حل های مبتنی بر دستگاه های تلفن همراه.
- گیرنده های پروتکل که از طریق روش های ثبت نام پروتکل ProtokHandler () و unregisterProtocolHandler () متصل می شوند ، اکنون می توانند فقط در یک زمینه ایمن (هنگام دسترسی از طریق HTTPS) کار کنند.
علاوه بر نوآوری ها و رفع اشکالات ، 56 آسیب پذیری در نسخه جدید برطرف شد. بسیاری از آسیب پذیری ها در نتیجه آزمایش خودکار با ابزارهای AdSanitizer ، MemorySanitizer ، کنترل جریان یکپارچگی ، LibFuzzer و AFL شناسایی شدند. مشکلات بحرانی که به شما امکان می دهد از همه سطوح محافظت از مرورگر دور بزنید و کد را بر روی سیستم خارج از محیط sandbox انجام دهید ، مشخص نشده است. به عنوان بخشی از برنامه پاداش نقدی برای شناسایی آسیب پذیری ها برای نسخه فعلی ، گوگل 37 جایزه به ارزش 48000 دلار (یک حق بیمه 10،000 دلار ، سه حق بیمه 5000 دلار ، سه حق بیمه 3000 دلار ، چهار حق بیمه 2000 دلار ، سه حق بیمه 1000 دلار و شش حق بیمه 500 دلار) را پرداخت کرده است. اندازه 17 پاداش هنوز مشخص نشده است.
OpenNET