ক্রোম 56-এ API অপসারণ এবং অপসারণ

জো মেডলি
Joe Medley

Chrome-এর প্রায় প্রতিটি সংস্করণে, আমরা পণ্য, এর কার্যকারিতা এবং ওয়েব প্ল্যাটফর্মের ক্ষমতার উল্লেখযোগ্য সংখ্যক আপডেট এবং উন্নতি দেখতে পাই। এই নিবন্ধটি Chrome 56-এ অবচয় এবং অপসারণের বর্ণনা দেয়, যা 8 ডিসেম্বর পর্যন্ত বিটাতে রয়েছে। এই তালিকা যে কোনো সময় পরিবর্তন হতে পারে।

SHA-1 শংসাপত্রের জন্য সমর্থন সরান৷

SHA-1 ক্রিপ্টোগ্রাফিক হ্যাশ অ্যালগরিদম প্রথম এগারো বছর আগে দুর্বলতার লক্ষণ দেখিয়েছিল এবং সাম্প্রতিক গবেষণা আক্রমণের আসন্ন সম্ভাবনার দিকে নির্দেশ করে যা সরাসরি ওয়েব পাবলিক কী অবকাঠামো (PKI) এর অখণ্ডতাকে প্রভাবিত করতে পারে।

এই ধরনের আক্রমণ থেকে ব্যবহারকারীদের রক্ষা করার জন্য, Chrome 56-এ শুরু হওয়া SHA-1 শংসাপত্রগুলিকে আর সমর্থন করে না, যার স্থিতিশীল প্রকাশ জানুয়ারী 2017-এ৷ এই ধরনের শংসাপত্র ব্যবহার করে একটি সাইট পরিদর্শন করা একটি আন্তঃস্থায়ী সতর্কতার ফলে৷ আমরা Chrome সিকিউরিটি ব্লগে আরো বিশদ বিবরণ প্রদান করি।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

TLS-এ CBC-মোড ECDSA সাইফারগুলি সরান৷

TLS-এর CBC-মোড নির্মাণ ত্রুটিপূর্ণ, এটিকে ভঙ্গুর করে তোলে এবং নিরাপদে বাস্তবায়ন করা খুবই কঠিন। যদিও CBC-মোড সাইফারগুলি এখনও RSA এর সাথে ব্যাপকভাবে ব্যবহৃত হয়, তারা ECDSA এর সাথে কার্যত অস্তিত্বহীন। অন্যান্য ব্রাউজার এখনও এই সাইফার সমর্থন করে, আমরা বিশ্বাস করি ঝুঁকি কম। অতিরিক্তভাবে, TLS-এ ECDSA কয়েকটি সংস্থা ব্যবহার করে এবং সাধারণত আরও জটিল সেটআপ সহ (কিছু পুরানো ক্লায়েন্ট শুধুমাত্র RSA সমর্থন করে), তাই আমরা আশা করি যে ECDSA সাইটগুলি আরও ভাল রক্ষণাবেক্ষণ করবে এবং সমস্যার ক্ষেত্রে আরও প্রতিক্রিয়াশীল হবে।

TLS 1.2 AEAD-এর উপর ভিত্তি করে নতুন সাইফার যোগ করেছে যা এই সমস্যাগুলি এড়িয়ে যায়, বিশেষ করে AES_128_GCM, AES_256_GCM, বা CHACHA20_POLY1305৷ যদিও আমরা এই সময়ে শুধুমাত্র ECDSA-ভিত্তিক সাইটগুলির জন্য এটির প্রয়োজন করছি, এটি সমস্ত প্রশাসকদের জন্য সুপারিশ করা হয়৷ AEAD-ভিত্তিক সাইফারগুলি কেবল নিরাপত্তাই নয়, কর্মক্ষমতাও উন্নত করে। AES-GCM সাম্প্রতিক CPU-তে হার্ডওয়্যার সমর্থন করে এবং ChaCha20-Poly1305 দ্রুত সফ্টওয়্যার বাস্তবায়ন স্বীকার করে। এদিকে, সিবিসি সাইফারগুলির প্রতিটি বহির্গামী রেকর্ডে ধীর জটিল প্রশমন এবং PRNG অ্যাক্সেস প্রয়োজন। AEAD-ভিত্তিক সাইফারগুলিও HTTP/2 এবং ফলস স্টার্ট অপ্টিমাইজেশনের জন্য একটি পূর্বশর্ত।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

স্পর্শ স্ক্রোল থেকে ব্যবহারকারী অঙ্গভঙ্গি সরান

আমরা খারাপভাবে লেখা বা দূষিত বিজ্ঞাপনের একাধিক উদাহরণ দেখেছি যা touchstart বা সমস্ত touchend ইভেন্টে টাচ স্ক্রোলগুলির জন্য নেভিগেশন ট্রিগার করে৷ যদি একটি 'চাকা' ইভেন্ট একটি পপ-আপ খুলতে না পারে, তাহলে স্পর্শ স্ক্রোলিংও উচিত নয়। এটি কিছু পরিস্থিতি ভেঙ্গে ফেলতে পারে, উদাহরণস্বরূপ, স্পর্শে মিডিয়া বাজছে না, বা স্পর্শে পপ-আপ খুলছে না। সাফারি ইতিমধ্যেই নীরবে এই সমস্ত পরিস্থিতিতে পপ-আপ খুলতে ব্যর্থ হয়েছে।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

অবৈধ টাইপ/ভাষা বৈশিষ্ট্য সহ স্ক্রিপ্টগুলির জন্য সমস্ত আনার অনুমতি দিন৷

বর্তমানে, Chrome এর প্রিলোড স্ক্যানার type বা language বৈশিষ্ট্যের মান নির্বিশেষে <scripts> উপাদানগুলিতে আইটেম আনে, যদিও পার্স করার সময় স্ক্রিপ্টটি কার্যকর করা হবে না। আনয়নকে অবমূল্যায়ন করার মাধ্যমে, প্রিলোড স্ক্যানার এবং পার্সারের একই শব্দার্থ থাকবে, এবং আমরা যে স্ক্রিপ্টগুলি ব্যবহার করব না তার জন্য আমরা আনা শুরু করব না। এটি এমন ব্যবহারকারীদের জন্য ডেটা সংরক্ষণ করার উদ্দেশ্যে করা হয়েছে যারা পোস্ট-প্রসেসড (যেমন type="text/template" , যেমন) প্রচুর কাস্টম স্ক্রিপ্ট ট্যাগ সহ সাইটগুলিতে নেভিগেট করেন।

পিং সার্ভারে অবৈধ স্ক্রিপ্ট ব্যবহার করার ক্ষেত্রে পর্যাপ্তভাবে sendBeacon API দ্বারা কভার করা হয়েছে।

এই পরিবর্তনটি ক্রোমকে সাফারির সাথে সারিবদ্ধ করে, যদিও ফায়ারফক্স এখনও প্রকার বা ভাষা নির্বিশেষে স্ক্রিপ্টের অনুরোধ করে।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

MediaStreamTrack.getSources() সরান

এই পদ্ধতিটি আর স্পেকের অংশ নয় এবং অন্য কোন বড় ব্রাউজার দ্বারা সমর্থিত নয়। এটি MediaDevices.enumerateDevices() দ্বারা প্রতিস্থাপিত হয়েছে, যা ব্লিঙ্ক 47 সংস্করণ থেকে পতাকা ছাড়াই সমর্থন করেছে এবং যা অন্যান্য ব্রাউজার দ্বারাও সমর্থিত। এর একটি উদাহরণ নীচে দেখানো হয়েছে। এই অনুমানমূলক getCameras() ফাংশনটি প্রথমে enumerateDevices() খুঁজে পেতে এবং ব্যবহার করতে বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করে। বৈশিষ্ট্য সনাক্তকরণ ব্যর্থ হলে, এটি MediaStreamTrackgetSources() সন্ধান করে। পরিশেষে, যদি কোনো ধরনের API সমর্থন না থাকে তাহলে খালি cameras অ্যারে ফেরত দিন।

    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);
      }
    };

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

প্রতিফলিত-xss CSP নির্দেশিকা সরান

বিষয়বস্তু নিরাপত্তা নীতি স্তর 2 স্পেকের প্রারম্ভিক খসড়াগুলিতে একটি reflected-xss নির্দেশিকা রয়েছে যা একটি ভিন্ন বাক্য গঠন ছাড়া X-XSS-Protection শিরোনাম ছাড়া আর কিছুই অফার করে না। এই নির্দেশিকাটি 2015 সালে বিশেষত্ব থেকে সরানো হয়েছিল, কিন্তু Chrome এ এটি প্রয়োগ করার আগে নয়। এই নির্দেশের জন্য সমর্থন এখন সরানো হচ্ছে.

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

CSP 'রেফারার' নির্দেশ প্রতিস্থাপন করুন

CSP referrer নির্দেশিকা সাইট মালিকদের একটি HTTP শিরোনাম থেকে একটি রেফারার নীতি সেট করার অনুমতি দেয়৷ শুধুমাত্র এই বৈশিষ্ট্যটির খুব কম ব্যবহারই নয়, এটি আর কোনো W3C স্পেকের অংশও নেই।

যে সাইটগুলির এখনও এই কার্যকারিতা প্রয়োজন তাদের <meta name="referrer"> বা নতুন রেফারার-পলিসি হেডার ব্যবহার করা উচিত।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

PaymentAddress.careOf ক্ষেত্র সরান

PaymentAddress ইন্টারফেসের একটি careOf ক্ষেত্র রয়েছে যা অ-মানক (কোন সুপরিচিত ঠিকানা মান এটি সমর্থন করে না)। careOf ক্ষেত্রটিও অপ্রয়োজনীয়, প্রাপক এবং সংস্থার ক্ষেত্রগুলি সমস্ত প্রয়োজনীয় ব্যবহারের ক্ষেত্রে যথেষ্ট সমর্থন করে। careOf যোগ করা বিদ্যমান পোস্টাল অ্যাড্রেস স্কিমা এবং API-এর সাথে আন্তঃকার্যযোগ্যতার ক্ষেত্রে উল্লেখযোগ্য সমস্যা তৈরি করে। একটি পূর্ণ আলোচনার জন্য, GitHub-এ বিশেষ অপসারণের প্রস্তাব পড়ুন।

অপসারণ করার অভিপ্রায় | ক্রোমিয়াম বাগ

SVGViewElement.viewTarget সরান

SVGViewElement.viewTarget অ্যাট্রিবিউটটি SVG2.0 স্পেসিফিকেশনের অংশ নয় এবং এটির ব্যবহার ছোট বা অস্তিত্বহীন। এই বৈশিষ্ট্যটি Chrome 54-এ অপ্রচলিত ছিল এবং এখন সরানো হয়েছে।

অপসারণ করার অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ