ایجاد: ۲۲:۱۸ ۱۳۹۱/۱۰/۱
ویرایش: ۱۴:۳۸ ۱۳۹۴/۲/۱۳

یادداشت‌ها

»

تشخیص و کشف نوع، نام و مشخصات مرورگر کاربران سایت

تشخیص نام و نسخه مرورگر کاربردهای خاص خود را دارد که یکی از مهم‌ترین آنها بحث امنیت کاربران احراز هویت‌شده (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 را دانلود کنید.
    به دلیل سنگینی تابع get_browser، بسیاری از برنامه‌نویسان از آن استفاده نمی‌کنند (چون اجرای آن ممکن است تا حدود 5 ثانیه هم طول بکشد) اما پروژه phpbrowscap برای حل این مشکل ایجاد شده و با دانلود آخرین نسخه browscap.ini و کش کردن فایل و ... موجب می‌شود که سرعت استفاده از browscap.ini حداقل 20 برابر شود.
  • piwik device detector
    این پروژه که در نیمه دوم سال 2014 استارت خورد را می‌توان قوی‌ترین و بروزترین پروژه‌ای دانست که فعلا در این زمینه موجود است.

در سمت کاربر (کلاینت) یا کمک جاوا اسکریپت

تشخیص مشخصات مرورگر، سیستم‌عامل، صفحه‌نمایش و ... کاربر با کمک جاوا اسکریپت بیشتر در برنامه‌های آمارگیر متداول بوده و البته کاربردهای دیگر خاص خود را نیز دارد...

_______
کتابخانه جدید Detector هم بر مبنای PHP صرف و هم بر مبنای جاوا اسکریپت می‌تواند ویژگی‌های خوبی را از مرورگر و قابلیت‌های سیستم کاربر کشف کند که شما را به دیدن سایت آن توصیه می‌کنم.


یادداشت‌های مرتبط
  1. سرویس های آنلاین رایگان برای نوشتن، تست و بهینه سازی کدهای برنامه نویسی
  2. آشنایی با دو قابلیت جدید مرورگرها: WebRTC و ضبط صدا و تصویر!
  3. لیست مواردی که برای امنیت برنامه PHP لازم است چک شود
  4. کاربردهای CURL در پی اچ پی
  5. روش های بهبود کیفیت آپلود فایل ها از طریق فرم های صفحات وب
  6. چرا باید بینندگان موبایلی سایت تان را در اولویت قرار دهید؟
  7. انواع روش های شناسایی و احراز هویت کاربران یک صفحه وب
  8. قلمرو متغیرها در پی اچ پی و جاوا اسکریپت
  9. دسترسی کامل به عناصر آدرس در جاوا اسکریپت
  10. برنامه نویسی اندروید
  11. درباره نود جی اس
  12. افکت های متن با جاوا اسکریپت و جی کوئری
  13. ارسال و دریافت ایمیل با PHP و ساختن اکانت ایمیل
  14. خطا در جاوا اسکریپت
  15. پایگاه داده در جاوا اسکریپت
  16. روش ها و تکنیک های پنهان کردن ایمیل
  17. تجزیه و ترکیب URL در PHP
  18. نکاتی در مورد نسخه جدید PHP 5.5
  19. زوم (zoom) و بزرگنمایی تصویر و متن با جاوا اسکریپت و پی اچ پی
  20. کشف فونت های نصب شده در کلاینت
  21. بازی با زمان!
  22. کار با تصاویر در سمت کاربر
  23. بهینه سازی آنلاین سی اس اس و جاوا اسکریپت
  24. استفاده از Media Queries ها و اصلاح عدم پشتیبانی IE6-8
  25. چند لینک جامع برای یادگیری جاوا اسکریپت
  26. انواع راه های تولید کد QR با پی اچ پی و جاوا اسکریپت

مدیریت

نام وسیله

اعتبار ورود

نام کاربری

رمز عبور

رمز یکبارمصرف

... لیست تمام یادداشت‌ها

تبلیغات

ربات‌های تلگرامی:
مجموعه ربات‌های تلگرامی ما برای ساده‌تر کردن کار با تلگرام و مدیریت کانال
دامنه‌های فروشی:
دامنه‌های زیر مربوط به ما یا مشتریان ماست که قابل واگذاری هستند. در صورت تمایل به داشتن یکی از آنها، با این اکانت تلگرامی مکاتبه نمایید.

دامنه‌هایی که می‌تواند مصرف تخصصی داشته باشد:
AnyDesk.ir, Firebase.ir, Angularjs.ir, 9px.ir alAdmin.ir, iQore.ir notion.ir, 3dn.ir,

دامنه‌هایی که می‌تواند مصرف فرهنگی/مذهبی داشته باشد:
mavaez.ir, 2aha.ir, babolelm.ir, mahjoor.ir

دامنه‌هایی که می‌تواند مصرف شخصی/عمومی داشته باشد:
azizami.ir, 90blog.ir