یک نمای کلی واضح از ویژگی پیوند _blank دریافت کنید و یاد بگیرید که چگونه آن را به درستی اجرا کنید تا امنیت سایت و خطرات مربوط به عملکرد را کاهش دهید.
استفاده از ویژگی _blank link باعث میشود که پیوند در پنجره یا تب جدید مرورگر باز شود.
اما آنقدرها هم که به نظر میرسد ساده نیست.
مشخص میشود که نه تنها ویژگی پیوند _blank یک خطر امنیتی است، بلکه موقعیتهای متعددی نیز وجود دارد که استفاده از چیزی غیر از _blank توصیه میشود.
در این مقاله، یاد خواهید گرفت که استفاده از ویژگی _blank ایده خوبی نیست.
ویژگی _Blank Link چیست؟
ویژگی _blank link به مرورگر میگوید که پیوندی را در یک تب جدید باز کند.
میتوانید چندین پیوند داشته باشید که از ویژگی پیوند _blank استفاده میکنند، و هر پیوند متفاوت با آن ویژگی _blank، وقتی روی آن کلیک کنید، یک برگه جدید مرورگر ایجاد میکند.
علاوه بر این، اگر یک کاربر بارها و بارها روی همان پیوند کلیک کند، مرورگر برگههای بیشتری را ایجاد میکند.
آیا ویژگی _Blank غیراخلاقی است؟
برخی بر این عقیده هستند که بهتر است به کاربر اجازه داده شود تا برگه مرورگر جدیدی را باز کند.
برخی افراد ادعا میکنند که «به دام انداختن» کاربر در سایت خود با باز کردن پیوندها در یک پنجره مرورگر جدید و باز نگه داشتن صفحه وب خود نیز غیراخلاقی است.
مشکل این دیدگاه این است که به احتمال زیاد اکثر مردم نمیدانند که انتخابی برای باز کردن یک پنجره مرورگر جدید دارند.
هر مخاطب سایت از نظر فنی در سطوح مختلف مهارت دارد.
اما احتمالاً میتوان گفت که بسیاری از مردم هنوز نمیدانند که میتوانند راست کلیک کنند (یا روی یک دستگاه تلفن همراه کلیک طولانی کنند) و باز کردن یک برگه مرورگر جدید را انتخاب کنند.
بنابراین، دادن یک "انتخاب" به کاربران واقعاً یک انتخاب نیست.
آنها فقط به هر کجا که آنها را بفرستید میروند.
انتخاب «اخلاقی» یک شخص برای باز کردن پیوند در همان مرورگر وب، میتواند بازدیدکنندگان سایت را در صورتی که با بستن برگه مرورگری که در حال حاضر در آن هستند، به صفحه اصلی وب بازگردند، سردرگم کند.
امروزه بحث اخلاق عمدتاً کنار گذاشته شده است.
انتخاب اینکه آیا از ویژگی پیوند _blank استفاده شود یا نه یک انتخاب شخصی و تجاری است.
یک دلیل امنیتی برای عدم استفاده از _Blank وجود دارد
ویژگی پیوند target=”_blank” مخاطره آمیز است و یک وب سایت را در برابر مسائل امنیتی و عملکرد باز میکند.
صفحه Web.dev گوگل در مورد خطرات استفاده از ویژگی پیوند _blank به این صورت خلاصه میشود:
«صفحه دیگر ممکن است با همان فرآیند صفحه شما اجرا شود. اگر صفحه دیگر جاوا اسکریپت زیادی اجرا میکند، عملکرد صفحه شما ممکن است آسیب ببیند.
صفحه دیگر میتواند با ویژگی er به شی پنجره شما دسترسی داشته باشد. این ممکن است به صفحه دیگر اجازه دهد صفحه شما را به یک URL مخرب هدایت کند."
راه حل؟
از ویژگیهای پیوند rel=”noopener” یا rel=”noreferrer” برای هر لینک استفاده کنید.
خصیصه پیوند rel=”noopener” از دسترسی سایت لینک شده به صفحه اصلی وب که در حال لینک کردن است جلوگیری میکند. این امر باعث میشود که سایت لینک شده کنترل را به دست نگیرد یا بر سایت پیوند دهنده تأثیر بگذارد.
ویژگی پیوند rel=”noreferrer” اطلاعات ارجاع دهنده را از سایتی که به آن لینک شده است پنهان میکند. هنگامی که یک بازدیدکننده سایت روی پیوند rel="noreferrer" کلیک میکند، سایتی که به آن لینک شده است نمیداند چه سایتی بازدید کننده را ارجاع داده است.
ویژگی پیوند rel=”noreferrer” نیز مانند ویژگی پیوند “noopener” عمل میکند، زیرا از کنترل سایت لینکدهی توسط سایت لینکشده جلوگیری میکند.
بنابراین، اگر میخواهید اطلاعات ارجاعدهنده وبسایتها را ارسال کنید و در عین حال از خود در برابر مسائل امنیتی ویژگی پیوند _blank محافظت کنید، از ویژگی پیوند «noopener» استفاده کنید.
اگر ترجیح میدهید خصوصی بمانید و اطلاعات ارجاعدهنده را منتقل نکنید و در عین حال از خود در برابر مشکلات امنیتی مرتبط با استفاده از ویژگی پیوند _blank محافظت کنید، از ویژگی پیوند rel=”noreferrer” استفاده کنید.
ملاحظات امنیت داده برای صفحات حساس
شرایط خاصی در رابطه با امنیت وجود دارد که در آن یک ناشر ممکن است نخواهد کاربر چندین صفحه وب ایجاد کند. یکی از این موارد، وب سایتی است که با اطلاعات حساس مشتریان سروکار دارد.
اگر یک وب سایت مرتبط با سلامت یا امور مالی از _blank برای پیوند به اطلاعات خصوصی استفاده کند، ممکن است باعث شود بازدیدکننده سایت چندین صفحه وب با اطلاعات حساس ایجاد کند.
ممکن است ناخودآگاه این پنجرهها را ناخواسته باز بگذارند.
به عنوان مثال، ممکن است پنجره اصلی و پنجره دیگری را ببندند و ندانند که ممکن است پنجره سومی با اطلاعات بسیار محرمانه همچنان در برگه پسزمینه مرورگر باز باشد.
در این صورت، ناشر سایت ممکن است از ویژگی پیوند متفاوتی مانند «خالی» (با زیرخط _) استفاده کند.
ویژگی پیوند "خالی" پیوندی را در یک برگه جدید مرورگر باز میکند.
با این حال، بر خلاف ویژگی پیوند _blank، تمام پیوندهای دیگر در صفحه اصلی وب نیز صفحه پیوند شده را در همان برگهای که اولین پیوند کلیک شده باز میکند، باز میکنند.
بنابراین، اگر پنج پیوند در صفحهای داشته باشید که از ویژگی پیوند «خالی» استفاده میکنند، و کاربر روی اولین پیوند کلیک کند، هر یک از چهار پیوند دیگر با کلیک کردن، صفحات وب را در همان برگه مرورگر باز میکند که اولین پیوند کلیک شده است.
<a href="https://www.example.com/" target="_SEJ" rel="noreferrer">
Alternate to _Blank Attribute
به هر حال، لازم نیست از _blank استفاده کنید. میتوانید از یک کلمه متفاوت استفاده کنید.
تفاوت بین استفاده از _blank و هر کلمه دیگری در این است که استفاده از یک کلمه دیگر، هر لینک در آن صفحه را محدود میکند تا در همان برگه مرورگر جدید باز شود.
به عنوان مثال، اگر یک لینک مانند این را کد کنید:
پیوند بالا در یک برگه مرورگر کاملاً جدید باز میشود.
حال، اگر دو پیوند با ویژگی پیوند یکسان دارید:
<a href="https://www.example.com/" target="_SEJ" rel="noreferrer">
<a href="https://www.example.net/" target="_SEJ" rel="noreferrer">
اگر بازدیدکننده سایت روی اولین لینک کلیک کند، یک برگه مرورگر جدید ایجاد میشود.
اگر بازدیدکننده سایت روی پیوند دوم کلیک کند، پیوند را در همان برگه مرورگر باز میکند که اولین پیوندی که روی آن کلیک شده است، اساساً از همان برگه مرورگر دوباره استفاده میکند.
ممکن است نخواهید از _Blank برای فریمهای درون خطی استفاده کنید
ممکن است زمانی وجود داشته باشد که ناشر نیاز به استفاده از چیزی غیر از ویژگی _blank داشته باشد.
یکی از این موارد برای قابهای درون خطی است.
یک قاب درون خطی یک عنصر HTML است که میتواند یک سند وب دیگری را در خود داشته باشد.
به عنوان مثال، برخی از تبلیغات در داخل یک iframe قرار میگیرند تا در نهایت به یک صفحه وب در یک صفحه وب تبدیل شوند.
یک قاب درون خطی با عنصر iframe (که برچسب iframe نیز نامیده میشود) کدگذاری میشود.
از آنجایی که iframe اساساً یک صفحه وب است که در یک صفحه وب دیگر تعبیه شده است، مشخصات HTML دارای ویژگیهای پیوندی است که مختص iframe است که باعث میشود پیوندهای تعبیه شده در یک iframe رفتار خاصی داشته باشند.
هنوز هم میتوان از _blank در iframe برای ایجاد یک صفحه وب در یک برگه مرورگر جدید استفاده کرد. اما اگر رفتار خاصی برای iframe میخواهید توصیه نمیشود.
سه ویژگی پیوند خاص iframe برای انتخاب وجود دارد:
_parent: پیوندی را خارج از iframe (و همچنین در همان صفحه وب) باز میکند.
_self: پیوند را در همان iframe (یا همان صفحه وب) باز میکند اما فقط در صورتی که پیوند در همان دامنه باشد. اگر پیوند به دامنه دیگری باشد کار نخواهد کرد.
_top: خارج از iframe (و همچنین در همان صفحه وب) باز میشود.
_ویژگیهای پیوند خالی
وقتی صحبت از ویژگی پیوند _blank به میان میآید، احتمالاً تعمیم و به سادگی استفاده از آن تا زمانی که ویژگی پیوند noreferrer یا noopener متصل به آن باشد، مشکلی ندارد.
با این گفته، خوب است بدانید که جایگزینهایی وجود دارد.
در نهایت، استفاده از ویژگی پیوند _blank به آسانی و به همان اندازه که میخواهید پیچیده است، و به نیازهای خاص شما بستگی دارد.