Penghentian dan Penghapusan API di Chrome 56

Joe Medley
Joe Medley

Di hampir setiap versi Chrome, kami melihat sejumlah besar update dan peningkatan pada produk, performanya, dan juga kemampuan Platform Web. Artikel ini menjelaskan penghentian penggunaan dan penghapusan di Chrome 56, yang masih dalam versi beta pada 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 yang lalu dan riset terbaru menunjukkan kemungkinan serangan yang akan segera terjadi yang dapat secara langsung memengaruhi integritas infrastruktur kunci publik (PKI) web.

Untuk melindungi pengguna dari serangan tersebut, Chrome tidak lagi mendukung sertifikat SHA-1 mulai Chrome 56, yang rilis stabilnya pada Januari 2017. Membuka situs menggunakan sertifikat tersebut akan menghasilkan 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 kekurangan, sehingga rentan dan sangat sulit diterapkan dengan aman. Meskipun cipher mode CBC masih banyak digunakan dengan RSA, cipher ini hampir 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), sehingga kami berharap situs ECDSA akan lebih baik dikelola 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 melakukannya. Cipher berbasis AEAD tidak hanya meningkatkan keamanan, tetapi juga performa. AES-GCM memiliki dukungan hardware pada CPU terbaru, sedangkan ChaCha20-Poly1305 mengizinkan implementasi software yang cepat. Sementara itu, cipher CBC memerlukan mitigasi kompleks yang lambat dan akses PRNG pada setiap kumpulan data keluar. Cipher berbasis AEAD juga merupakan prasyarat untuk pengoptimalan HTTP/2 dan False Start.

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghapus gestur pengguna dari scroll sentuh

Kami telah melihat beberapa contoh iklan yang ditulis dengan buruk atau malicious yang memicu navigasi untuk scroll sentuh pada peristiwa touchstart atau semua touchend. Jika peristiwa 'roda' tidak dapat membuka pop-up, scroll sentuh juga tidak boleh. Hal ini dapat merusak beberapa skenario, misalnya, media tidak diputar saat disentuh, atau pop-up tidak terbuka saat disentuh. Safari sudah secara diam-diam gagal membuka pop-up dalam semua skenario ini.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Tidak mengizinkan 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 dieksekusi 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 dimaksudkan untuk menyimpan data bagi pengguna yang membuka situs dengan banyak tag skrip kustom yang diproses pasca-pemrosesan (seperti, misalnya, type="text/template").

Kasus penggunaan penggunaan skrip yang tidak valid untuk server ping tercakup secara memadai oleh sendBeacon API.

Perubahan ini menyelaraskan Chrome dengan Safari, meskipun Firefox masih meminta skrip terlepas dari 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. Fungsi ini telah diganti dengan MediaDevices.enumerateDevices(), yang didukung Blink tanpa tanda sejak versi 47 dan juga didukung oleh browser lain. Contohnya ditampilkan di bawah ini. Fungsi getCameras() fiktif ini terlebih dahulu menggunakan deteksi fitur untuk menemukan dan menggunakan enumerateDevices(). Jika gagal, deteksi fitur akan mencari getSources() di MediaStreamTrack. Terakhir, jika tidak ada dukungan API apa pun, 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 to Remove | Chromestatus Tracker | Chromium Bug

Menghapus perintah CSP reflected-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 kini dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Mengganti 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 to Remove | Chromestatus Tracker | Chromium Bug

Menghapus kolom PaymentAddress.careOf

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

Intent untuk Menghapus | 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