কম্পিউটার টিউটোরিয়াল

HTML rel="noopener" অ্যাট্রিবিউট: এক্সটার্নাল লিংক নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ

rel="noopener" অ্যাট্রিবিউট HTML-এ সবচেয়ে গুরুত্বপূর্ণ অ্যাট্রিবিউটের একটি, কারণ এটি সরাসরি এক্সটার্নাল লিংক নিরাপত্তা-কে প্রভাবিত করে যেসব অ্যাঙ্কর লিংক target="_blank" অ্যাট্রিবিউট ব্যবহার করে।

target="_blank" লিংকগুলো নতুন ব্রাউজার ট্যাবে খুলে।

rel="noopener" অ্যাট্রিবিউটসহ লিংকের উদাহরণ:

<a href="https://www.youtube.com" rel="noopener" target="_blank" >Link to youtube.com</a >

rel="noopener" কীভাবে কাজ করে

যখন আপনি আপনার ওয়েবসাইটের একটি এক্সটার্নাল লিংকে rel="noopener" যোগ করেন (with target="_blank"), তবে এটি আপনার লিংক করা ওয়েবসাইটকে আপনার পেজ-এ অ্যাক্সেস করতে বাধা দেয় উইন্ডো অবজেক্টের মাধ্যমে (via window.opener প্রপার্টি)।

অনুবাদ: যদি আপনার রেফার করা পেজে ম্যালিশিয়াস কোড থাকে, তবে সেটি ব্যাকডোর (window.opener) ব্যবহার করে আপনার ওয়েবসাইট হাইজ্যাক করতে পারে, এবং উদাহরণস্বরূপ ইউজারকে একটি ডেঞ্জারাস ফিশিং ওয়েবসাইটে রিডাইরেক্ট করতে পারে যা তাদের ইনফো চুরি করবে বা তাদের কম্পিউটারে ম্যালওয়্যার ইনস্টল করবে।

এই কারণেই WordPress স্বয়ংক্রিয়ভাবে rel="noopener" অ্যাট্রিবিউট যোগ করে সব এক্সটার্নাল লিংকে যেগুলো নতুন ব্রাউজার ট্যাবে খুলে (using target="_blank" অ্যাট্রিবিউট) — নিরাপত্তার কারণেই।

আমি রিকমেন্ড করি আপনিও একই কাজ করুন, আপনার ওয়েবসাইট যেকোনো টাইপ হোক, কারণ এর উপসাইড ডাউনসাইডের চেয়ে বেশি।

rel="noopener" এবং SEO

ভালো খবর, rel="noopener"-এর আপনার SEO-তে কোনো প্রভাব নেই।

noopener ব্যবহারের ডাউনসাইড

একমাত্র ডাউনসাইড যা আমি জানি: rel="noopener"-এর Internet Explorer 11 সাপোর্ট নেই।

আমি সেটি নিয়ে চিন্তিত নই কারণ:

  1. IE11 শীঘ্রই ইতিহাস (Microsoft এটি বাদ দিচ্ছে)।
  2. আপনার সাইট ভিজিটর IE11 ব্যবহার করলে, তারা আপনার লিংকে ক্লিক করতে পারবে, শুধু rel="noopener" অ্যাট্রিবিউটটি ইফেক্টিভ হবে না।

এছাড়া, একজন দায়িত্ববান ওয়েবসাইট মালিক হলে, আপনাকে এক্সটার্নাল লিংক দাওয়ার সময় সতর্ক থাকা উচিত। যেসব ওয়েবসাইটে আপনি ভরসা করেন না সেখানে ইউজারকে রেফার করবেন না, এবং এই সিকিউরিটি ইশু почти নন-একজিস্টেন্ট হয়ে যাবে।

বিকল্প ১: "noreferrer" ব্যবহার করুন

আপনি যদি Internet Explorer ইউজারদের জন্য চিন্তিত হন, তবে আপনার অ্যাঙ্কর লিংকে noreferrer অ্যাট্রিবিউট ভ্যালু (যা সাপোর্টেড) যোগ করতে পারেন এইভাবে:

<a href="https://www.youtube.com" rel="noopener noreferrer" target="_blank" >Link to youtube.com</a >

"noreferrer" অ্যাট্রিবিউট রেফারার (আপনি) কে টার্গেট ওয়েবসাইটে (যে লিংক দিয়েছেন) ইনফো পাঠাতে বাধা দেয় HTTP হেডার থেকে রেফারাল ইনফো রিমুভ করে।

rel="noreferrer" ওয়েবসাইট এনালিটিক্স-এ প্রভাব ফেলবে যেহেতু আপনি যেসব ওয়েবসাইটে লিংক দিয়েছেন সেগুলো জানবে না যে আপনি সেগুলোকে লিংক দিয়েছেন, যা কোনো নির্দিষ্ট বিজনেস এগ্রিমেন্টকে আহত করতে পারে।

তাই আপনার বিবেচনায় এই ডিসিশন নিন।

rel="noreferrer" এবং SEO

অনেকের বিশ্বাসের বিপরীতে, rel="noreferrer" সরাসরি আপনার SEO-কে প্রভাবিত করে না, সত্যিকারের কোনো প্রমাণ নেই। কিন্তু উপরে বলা মতো, এটি ডেটা গ্যাদারিং/এনালিটিক্স-এ干渉 করবে, যা আপনার নির্দিষ্ট পরিস্থিতিতে অন্যভাবে আপনাকে আহত করতে পারে।

noreferrer বা noopener-কে nofollow অ্যাট্রিবিউটের সাথে গুলিয়ে ফেলবেন না (যেটি ১০০% SEO-কে প্রভাবিত করে)।

বিকল্প ২: target="_blank" ব্যবহার করবেন না

আপনি আপনার অ্যাঙ্কর লিংক থেকে target="_blank" অ্যাট্রিবিউট ব্যবহার করা বন্ধ করুন, এবং তারপর আপনাকে এই সব বিষয়ে চিন্তা করতে হবে না।

target="_blank" ছাড়া আপনার ওয়েবসাইটের প্রতিটি লিংক ইউজারকে আপনার ওয়েবসাইট থেকে আপনার লিংক করা ওয়েবসাইটে সরিয়ে দিবে জ्योंই তারা ক্লিক করবে।

তবে সতর্ক থাকুন, target="_blank" ব্যবহার না করলে আপনার SEO-তে নেতিবাচক প্রভাব ফেলতে পারে, বিশেষ করে বাউন্স রেট-এ।

ম্যাঝে ম্যাঝে টিউটোরিয়ালের ভিতরে এটি করা খুব খারাপ আইডিয়া, কারণ ইউজার রেফার করা ওয়েবসাইটে কিছুতে ডিস্ট্র্যাক্ট হয়ে আপনার সাইট ভুলে যেতে পারে।

আপনি আর্গু করতে পারেন যদি শুধু একটি এক্সটার্নাল লিংক আপনার রিডারকে আপনার কন্টেন্ট ভুলাতে পারে, তবে সেটি তত ভালো নয়। এটি সত্য হতে পারে, কিন্তু মানুষ সাধারণত সহজে ডিস্ট্র্যাক্ট হয়, তাদের বেনিফিটের বিপরীতে।

এটি ব্ল্যাক অ্যান্ড হোয়াইট টপিক নয় এবং আমি বিকল্প মতামতের জন্য খোলামেলা।

রিসোর্স

এক্সটার্নাল লিংকের সিকিউরিটি ইশু সম্পর্কে আরও পড়ুন

  1. HTML-এ formaction অ্যাট্রিবিউট কীভাবে ব্যবহার করবেন?

  2. HTML-এ required অ্যাট্রিবিউট কীভাবে ব্যবহার করবেন?

  3. HTML-এ মাল্টিপল অ্যাট্রিবিউটের ব্যবহার

  4. HTML-এ লিস্ট অ্যাট্রিবিউটের ব্যবহার