Penghentian dan Penghapusan API di Chrome 56

Joe Medley
Joe Medley

Di hampir setiap versi Chrome, kami melihat sejumlah update dan peningkatan yang signifikan pada produk, performanya, dan juga kemampuan Platform Web. Artikel ini menjelaskan penghentian penggunaan dan penghapusan di Chrome 56, yang dalam versi beta per 8 Desember. Daftar ini dapat berubah sewaktu-waktu.

Menghapus dukungan untuk sertifikat SHA-1

Algoritma hash kriptografis SHA-1 pertama kali menunjukkan tanda-tanda kelemahan lebih dari sebelas tahun lalu dan penelitian terbaru menunjukkan kemungkinan terjadinya serangan yang dapat secara langsung memengaruhi integritas infrastruktur kunci publik (IKP) web.

Untuk melindungi pengguna dari serangan tersebut, Chrome tidak lagi mendukung sertifikat SHA-1 mulai Chrome 56, yang rilis stabilnya dimulai pada Januari 2017. Mengunjungi situs yang menggunakan sertifikat tersebut akan mengakibatkan peringatan interstisial. Kami memberikan detail selengkapnya di Blog Keamanan Chrome.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus cipher ECDSA mode CBC di TLS

Konstruksi mode CBC TLS memiliki cacat, sehingga rapuh dan sangat sulit untuk diterapkan dengan aman. Meskipun penyandian mode CBC masih banyak digunakan dengan RSA, penyandian tersebut nyaris tidak ada dengan ECDSA. Browser lain masih mendukung cipher ini, kami yakin risikonya rendah. Selain itu, ECDSA di TLS digunakan oleh beberapa organisasi dan biasanya dengan penyiapan yang lebih kompleks (beberapa klien lama hanya mendukung RSA). Jadi, kami berharap situs ECDSA dapat dikelola dengan lebih baik dan lebih responsif jika terjadi masalah.

TLS 1.2 menambahkan cipher baru berdasarkan AEAD yang menghindari masalah ini, khususnya AES_128_GCM, AES_256_GCM, atau CHACHA20_POLY1305. Meskipun saat ini kami hanya mewajibkannya untuk situs berbasis ECDSA, sebaiknya semua administrator memerlukannya. Cipher berbasis AEAD tidak hanya meningkatkan keamanan tetapi juga performa. AES-GCM memiliki dukungan hardware pada CPU terbaru dan ChaCha20-Poly1305 menerima implementasi software yang cepat. Sementara itu, Cipher CBC memerlukan mitigasi kompleks yang lambat dan akses PRNG di setiap data keluar. Cipher berbasis AEAD juga merupakan prasyarat untuk pengoptimalan HTTP/2 dan False Start.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus gestur pengguna dari scroll sentuh

Kami telah melihat beberapa contoh iklan yang ditulis dengan buruk atau berbahaya yang memicu navigasi untuk scroll sentuh, baik pada touchstart atau semua peristiwa touchend. Jika peristiwa 'wheel' tidak dapat membuka pop-up, scroll sentuh juga tidak seharusnya. Hal ini dapat merusak beberapa skenario, misalnya, media tidak diputar saat disentuh, atau pop-up tidak terbuka saat disentuh. Safari sudah diam-diam gagal membuka {i>pop-up<i} dalam semua skenario ini.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Larang semua pengambilan untuk skrip dengan atribut jenis/bahasa yang tidak valid

Saat ini, pemindai pramuat Chrome mengambil item dalam elemen <scripts>, terlepas dari nilai atribut type atau language, meskipun skrip tidak akan dijalankan saat diuraikan. Dengan menghentikan pengambilan, pemindai pramuat dan parser akan memiliki semantik yang sama, dan kita tidak akan memulai pengambilan untuk skrip yang tidak akan kita gunakan. Hal ini ditujukan untuk menyimpan data bagi pengguna yang membuka situs dengan banyak tag skrip kustom yang telah diproses (misalnya, type="text/template").

Kasus penggunaan penggunaan skrip yang tidak valid ke server ping dicakup secara memadai oleh sendBeacon API.

Perubahan ini akan menyelaraskan Chrome dengan Safari, meskipun Firefox tetap meminta skrip apa pun jenis atau bahasanya.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus MediaStreamTrack.getSources()

Metode ini tidak lagi menjadi bagian dari spesifikasi dan tidak didukung oleh browser utama lainnya. Parameter ini telah diganti dengan MediaDevices.enumerateDevices(), yang telah didukung oleh Blink tanpa flag sejak versi 47 dan juga didukung oleh browser lain. Contohnya ditampilkan di bawah ini. Fungsi getCameras() hipotesis ini menggunakan deteksi fitur terlebih dahulu untuk menemukan dan menggunakan enumerateDevices(). Jika deteksi fitur gagal, fitur akan mencari getSources() di MediaStreamTrack. Terakhir, jika tidak ada dukungan API, tampilkan array cameras kosong.

    function getCameras(camerasCallback) {
      var cameras = [];
      if('enumerateDevices' in navigator.mediaDevices) {
         navigator.mediaDevices.enumerateDevices()
          .then(function(sources) {
            return sources.filter(function(source) { 
              return source.kind == 'videoinput' 
            });
          })
          .then(function(sources) {
            sources.forEach(function(source) {
              if(source.label.indexOf('facing back') >= 0) {
                // move front facing to the front.
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            });
            camerasCallback(cameras);
          });
      }
      else if('getSources' in MediaStreamTrack) {
        MediaStreamTrack.getSources(function(sources) {

          for(var i = 0; i < sources.length; i++) {
            var source = sources[i];
            if(source.kind === 'video') {

              if(source.facing === 'environment') {
                // cameras facing the environment are pushed to the front of the page
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            }
          }
          camerasCallback(cameras);
        });
      }
      else {
        // We can't pick the correct camera because the API doesn't support it.
        camerasCallback(cameras);
      }
    };

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus perintah CSP pencerminan-xss

Draf awal spesifikasi Kebijakan Keamanan Konten Level 2 berisi perintah reflected-xss yang tidak menawarkan apa pun selain header X-XSS-Protection selain sintaksis yang berbeda. Perintah ini dihapus dari spesifikasi pada tahun 2015, tetapi tidak sebelum diterapkan di Chrome. Dukungan untuk perintah ini sedang dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Ganti perintah 'perujuk' CSP

Perintah referrer CSP memungkinkan pemilik situs menetapkan kebijakan perujuk dari header HTTP. Selain memiliki penggunaan yang sangat rendah, fitur ini juga tidak lagi menjadi bagian dari spesifikasi W3C.

Situs yang masih memerlukan fungsi ini harus menggunakan <meta name="referrer"> atau header Referrer-Policy baru.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus kolom PaymentAddress.careOf

Antarmuka PaymentAddress memiliki kolom careOf yang non-standar (tidak ada standar alamat terkenal yang mendukungnya). Kolom careOf juga tidak diperlukan, kolom penerima dan organisasi cukup mendukung semua kasus penggunaan yang diperlukan. Menambahkan careOf menimbulkan masalah yang signifikan dalam hal interoperabilitas dengan skema alamat pos dan API yang ada. Untuk diskusi yang lebih lengkap, baca proposal penghapusan spesifikasi di GitHub.

Rencana Penghapusan | Bug Chromium

Menghapus SVGViewElement.viewTarget

Atribut SVGViewElement.viewTarget bukan bagian dari spesifikasi SVG2.0 dan penggunaannya kecil atau tidak ada. Atribut ini tidak digunakan lagi di Chrome 54 dan kini telah dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium