تشخیص نام و نسخه مرورگر کاربردهای خاص خود را دارد که یکی از مهمترین آنها بحث امنیت کاربران احراز هویتشده (authenticated) است چرا که در اکثر مواردی که کوکی کاربران به روشهای مختلف (مثلا xss) دزدیده میشود، براوزر کاربر متفاوت از براوزر سارق است (نام یا ورژن یا سایر مشخصاتش) و از این طریق میتوان کاربر سارق را تشخیص و سشن/کوکی احراز هویت را باطل کرد.
تعیین مشخصات مرورگر با زبان PHP از سمت سرور
تشخیص نوع براوزر توسط سرآیند درخواست (request header) فواید زیادی دارد. از جمله آنها میتوان به ریدایرکت کاربر به نسخه مخصوص موبایل است. (البته در صورتی که سایت شما ریسپونسیو نباشد)
کاربرد دیگر آن تولید js, css, image منطبق با براوزر کاربر است که البته کاری سنگین اما مفید است.
در ادامه چند نمونه کد مربوط به این امر معرفی شده است:
- mobile detect
این افزونه قابلیت تشخیص انواع موبایل و تبلت و کتابخوان (ebook reader) و براوزرهای متداول (فایرفاکس و …) را داراست و برنامه نسبتا جدید و خوب و کاملی به نظر میرسد. (صفحه این پروژه در گیت هاب)
این پروژه به قدری محبوب است که در بسیاری از پروژههای دیگر (از جمله دروپال و سمفونی و …) هم مورد استفاده قرار گرفته است. - detect mobile browsers
این برنامه مشابه قبلی است اما با قابلیتهای ظاهرا کمتر. - پروژه browser.php
که جزو قویترین کارها در این زمینه است اما لینک نسخه اخیر آن در لحظه نوشتن این مطلب کار نمیکند و من یک کپی از نسخه ذخیره شده آن را در اینجا قرار دادهام. - تابع get_browser (که از توابع خود PHP میباشد)
توسط این تابع میتوان نام سیستمعامل، نام و نسخه مرورگر (browser version) و همچنین برخی قابلیتها (از جمله نسخه css ساپورت شده توسط براوزر کاربر، لود شدن در iframe، فعال بودن کوکی، فعال بودن جاوا اسکریپت و …) را کشف کرد که بسیار عالی بوده و کاربردهای فراوانی دارد.
تابع get_browser از توابع php هست که از نسخه 4.3 وجود داشته است اما در برخی سرورها ممکن است به صورت پیشفرض فعال نباشد.
جهت استفاده از این تابع کافیست در php.ini سرور خود، سمیکالن (;) ابتدای خط مربوط به browscap را بردارید. شما در این خط آدرس فایل browscap.ini را درج میکنید که اولا باید آدرس مسیر صحیح باشد و ثانیا فایل مربوطه وجود داشته باشد. چنانچه فایل browscap.ini در سرور شما وجود ندارد، میتوانید آخرین نسخه PHP_BrowsCapINI را دانلود کنید.
در سمت کاربر (کلاینت) یا کمک جاوا اسکریپت
تشخیص مشخصات مرورگر، سیستمعامل، صفحهنمایش و … کاربر با کمک جاوا اسکریپت بیشتر در برنامههای آمارگیر متداول بوده و البته کاربردهای دیگر خاص خود را نیز دارد…
- http://www.quirksmode.org/js/detect.html
- http://www.javascripter.net/faq/browsern.htm
- http://www.javascriptkit.com/javatutors/navigator.shtml
_______
کتابخانه جدید Detector هم بر مبنای PHP صرف و هم بر مبنای جاوا اسکریپت میتواند ویژگیهای خوبی را از مرورگر و قابلیتهای سیستم کاربر کشف کند که شما را به دیدن سایت آن توصیه میکنم.