مشکل امنیتی target=_BLANK در طراحی سایت
در هنگام درج پیوندهای خارجی در سایت که ویژگی target=_BLANK داشته باشند رعایت نکات ایمنی ضروری است. در ادامه به مشکلاتی که این لینکها میتوانند ایجاد کنند و راه حل آن میپردازیم.
مشکل چه طور میتواند رخ دهد ؟
اشکال امنیتی ایجاد شده از نوع Phishing است. اشکال امنیتی Phishing نوعی مشکل امنیتی است که با ایجاد یک صفحهی جعلی کاملا مشابه یک سایت شناختهشدهی دیگر، تلاش میکند تا اطلاعات کاربران را سرقت کند.
هنگامی که یک سایت پیوندی به سایت دیگر ایجاد میکند و در ایجاد پیوند، ویژگی target=_BLANK را درج میکند، سایت باز شده، با استفاده از کدهای جاوااسکریپت، به برخی اطلاعات مبدا اصلی لینک دسترسی خواهد داشت.
از جملهی این دسترسیها، نشانی صفحهی باز کننده است. با استفاده از کدی شبیه به کد زیر، سایت مقصد پیوند میتواند پنجره یا برگهی مبدا را به یک نشانی جدید با هدف Phishing هدایت کند.
1 2 3 |
if (window.opener) { window.opener.location = "https://example.com/phishing?referrer=" + document.referrer; } |
وجود کد بالا در یک صفحهی مخرب، بررسی میکند که آیا کاربر با کلیک روی پیوندی در سایت دیگر با ویژگی target=_BLANK به این سایت مراجعه کرده است یا خیر و در صورت مثبت بودن پاسخ، سایت مبدا را به نشانی مخرب جدید هدایت میکند. نشانی مخرب میتواند ظاهری شبیه سایت اصلی ایجاد کند و از کاربر اطلاعات شخصی یا ورود وی را درخواست کند.
راه حل مشکل
برای حل کردن این مشکل، اضافه کردن ویژگی rel="noopener noreferrer"
سبب جلوگیری از دسترسی سایت مقصد به پنجرهی فعلی و نشانی پنجرهی اصلی خواهد شد.
1 |
<a href="http://example.com" target="_BLANL" rel="noopener noreferrer">Example</a> |
با استفاده از جاوااسکریپت نیز میتوان به شکل زیر از رخداد این اشکال امنیتی جلوگیری نمود:
1 2 3 |
var otherWindow = window.open(); otherWindow.opener = null; otherWindow.location = url; |
منبع: dev.to
سلام و خسته نباشید
در آخرین آپدیت وردپرس 4.7.4 به صورت اتوماتیک rel="noopener noreferrer" به همه لینک های target=_BLANK اضافه میشه و این مشکل رو حل کرده حالا سوالی دارم اینکه وردپرس حتی به لینک های داخلی هم که از target=_BLANK استفاده شده هم rel="noopener noreferrer رو اضافه میکنه،لازمه که لینک های داخلی هم این rel رو داشته باشه و اینکه از لحاظ سئو rel="noopener noreferrer چه تاثییری در لینک های داخلی داره؟
با سلام
این دو ویژگی اثری روی سئو سایت نباید داشته باشد، بلکه تنها کاربرد آن برای مرورگر است که دسترسی سایت باز شده به سایتی که آن را باز کرده مسدود میکند