حقایق پنهان PWA که ممکن است از آنها آگاهی نداشته باشید
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 9 دقیقه

حقایق پنهان PWA که ممکن است از آنها آگاهی نداشته باشید

این مقاله به مسائل مربوط به حریم خصوصی PWA که ممکن است بخواهید درباره آنها بیشتر بدانید، می‌پردازد.

برنامه‌های وب پیش رونده ( PWA )

مشابه سیبی که به سر نیوتن افتاد و نحوه درک نیروهای جاذبه را تغییر داد، برنامه‌های وب پیش رونده نیز با ارائه تجربه‌ای شبیه به برنامه‌های بومی در قالب وب، درک برنامه‌ها را تغییر دادند.

PWA یکی از فناوری‌هایی است که در ابتدا توسط گوگل پیشنهاد شده است. ایده برنامه وب پیش رونده اولین بار توسط فرانسیس بریمان و الکس راسل در سال 2015 شکل گرفت.

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

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

  • قابل اطمینان – فورا آن را بارگیری کنید و هرگز حتی در شرایط قطعی شبکه دایناسور (معروف به T-Rex در مرورگر کروم) را نبینید.
  • سریع - به سرعت به تعاملات کاربر با انیمیشن‌های نرم و بدون پیمایش پاسخ دهید.
  • جذابیت - با یک تجربه کاربری همه جانبه مانند یک برنامه بومی آن را در دستگاه احساس کنید.

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

Fingerprinting چیست؟

"هیچ دو نفری اثر انگشت یکسان ندارند، حتی دوقلوهای همسان" - مرکز ملی فناوری علوم پزشکی

اثر انگشت به انسان‌ها امکان می‌دهد تا به طور منحصر به فرد از یکدیگر شناسایی شوند. به همین ترتیب می‌توان از انگشت نگاری برای نهادهای دیگر استفاده کرد تا منحصرا افراد را شناسایی کنند. یک مثال می‌تواند اثر انگشت مرورگر باشد.

اثر انگشت مرورگر توانایی سایت برای شناسایی مجدد بازدید کننده، نماینده کاربر یا دستگاه از طریق تنظیمات پیکربندی یا سایر ویژگی‌های قابل توجه است. اثر انگشت مرورگر می‌تواند به عنوان یک اقدام امنیتی مانند تأیید اعتبار کاربر استفاده شود. مواردی وجود دارد که از اثر انگشت در آنها استفاده می‌شود:

  • شناسایی کاربر
  • ارتباط فعالیت کاربر درون و در طول sessionها
  • جمع آوری اطلاعاتی که می‌توان از آن نتیجه گیری در مورد کاربر انجام داد

چه مضراتی ایجاد می‌کند؟

بزرگترین خطر اثر انگشت مرورگر این است که ممکن است تهدیدات بالقوه‌ای برای حریم خصوصی کاربران باشد. می‌توانیم در زیر در مورد آسیب پذیری‌ها بیشتر بحث کنیم.

شناسایی کاربر

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

فعالیت مرورگر

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

بررسی کاربر

حتی بدون نیاز به موارد ذکر شده در بالا باز هم می‌توان کاربر را براساس چند ویژگی قابل مشاهده که توسط اثر انگشت مرورگر استفاده می‌شود، مشخص کرد. از نسخه سیستم‌عامل و جزئیات دستگاه می‌توان برای بررسی قدرت خرید کاربران استفاده کرد. کاربران حتی اگر ناشناس بمانند تمایل به این روش ندارند.

مواردی ثبت شده که کاربران سیستم‌عامل مک به لطف اثر انگشت دستگاه به هتل‌های گران‌تری هدایت می‌شوند. در اینجا شما میتوانید اطلاعات بیشتری راجع به آن بخوانید.

می توانید اطلاعات بیشتر درباره اثر انگشت را از اینجا بخوانید.

PWA چگونه به انگشت نگاری کمک می‌کند؟

برنامه‌های وب پیشرونده به یک فایل مانیفست نیاز دارند که یک فایل قالب بندی شده JSON شامل جفت‌های key-value است و ویژگی‌های مختلف برنامه را توصیف می‌کند. یکی از کلیدهایی که در فایل مانیفست یافت می‌شود start_url است. این مقدار URL دلخواهی را تعیین می‌کند که باید هنگام راه اندازی برنامه وب توسط کاربر بارگیری شود (به عنوان مثال وقتی کاربر از منوی برنامه دستگاه یا صفحه اصلی روی آیکون برنامه وب ضربه می‌زند).

تیم W3C این ساز و کار را شامل تهدیدهای بالقوه برای اثر انگشت دستگاه یا مرورگر و ارتباط کاربر با فعالیت مرورگر می‌داند. آنها معتقدند که این امر منجر به ایجاد یک مکانیسم جدید محلی مانند کوکی می‌شود.

می‌توان تصور کرد که start_url ساخته می‌شود تا نشان دهد که برنامه در خارج از مرورگر راه اندازی شده است (به عنوان مثال "start_url": "index.html?launcher=homescreen"). این می‌تواند برای تجزیه و تحلیل و احتمالا سفارشی سازی‌های دیگر مفید باشد. با این حال قابل تصور است که توسعه دهندگان می‌توانند رشته‌هایی را در start_url رمزگذاری کنند که به طور منحصر به فرد کاربر را شناسایی کنند (به عنوان مثال یک سرور UUID اختصاص داده شود). این اطلاعات حساس به اثر انگشت و حریم خصوصی است که ممکن است کاربر از آن اطلاع نداشته باشد.

این موضوع حتی در زمان نوشتن مقاله هنوز برای بحث باز مانده، زیرا هنوز راه حل مناسبی ارائه نشده است.

مطالعه‌ای توسط محقق امنیت Lukasz Olejnik در 10 هزار صفحه وب برای بررسی استفاده از اثر انگشت انجام شد. او دریافت که:

  • 1672 صفحه شامل manifest.json است
  • 828 استفاده از یک start_url اختصاصی
  • 274 استفاده از پارامتر

به نظر می‌رسد هیچ یک از شناسه‌های تولید شده به طور تصادفی استفاده نمی‌شوند.

او همچنین اشاره کرد:

در حالی که من شناسه‌های منحصر به فرد آشکاری را دیدم (مثلا 51606102_9527_7259_7770)، به نظر نمی‌رسد که برای هر کاربر جدید به طور تصادفی ایجاد شده باشد. این تست ساده امکان مشاهده با احتیاطی را فراهم می‌آورد که به نظر می‌رسد این ردیابی ممکن از لحاظ فنی امروزه مورد استفاده قرار نگیرد.

این موضوع می‌تواند باعث آرامش خاطر ما شود، زیرا در PWAهای فعلی اجرا نشده است. اما یک بمب ساعتی است که به سرعت می‌تواند یک قاتل خاموش برای حفظ حریم خصوصی کاربر تلقی شود، همانطور که آن را می‌شناسیم.

اپل چگونه با آن مبارزه می‌کند؟

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

از آنجایی که PWAها نوعی برنامه وب هستند که سعی می‌کنند عملکردهایی مانند یک برنامه بومی را انجام دهند، لازم است به ویژگی‌های سخت افزاری دستگاه مانند بلوتوث، NFC، وای فای و موارد دیگر دسترسی پیدا کنند.

اما اپل اخیرا از اجرای Web API در مرورگرهای مستقر در سافاری امتناع کرده و این واقعیت را نشان می‌دهد که آنها با ایجاد راهی به عنوان اثر انگشت باعث خطر افتادن حریم خصوصی کاربران می‌شوند. این APIها قبلا در اکوسیستم کروم پیاده سازی شده‌اند و برخی از آنها در اکوسیستم موزیلا بوده‌اند. اپل همچنین ادعا می‌کند که این APIها می‌توانند توسط تبلیغ کنندگان آنلاین و شرکت‌های تجزیه و تحلیل داده برای استفاده از کاربران اثر انگشت و دستگاه‌های آنها دستکاری شوند.

این برای PWAها دردسر ایجاد می‌کند، زیرا این امر مانعی برای توسعه دهندگانی است که سعی در ساخت برنامه‌هایی دارند که از ویژگی‌های بومی استفاده می‌کنند.

به گفته اپل: "اولین خط دفاعی WebKit در برابر انگشت نگاری، عدم اجرای ویژگی‌های وب است که fingerprintability  را افزایش می‌دهد و هیچ راهی ایمن برای محافظت از کاربر ارائه نمی‌دهد."

اپل همچنین اظهار داشته است که اگر هر یک از این فن آوری‌های جدید "قابلیت اثر انگشت را کاهش دهد"، در افزودن آن به مرورگر سافاری تجدیدنظر می‌کند.

PWA یک فناوری آینده نگر است که پتانسیل زیادی دارد. مسائل مربوط به حریم خصوصی که در بالا ذکر شد نباید شما را از PWAهایی که F.I.R.E را برای تنظیمات کلاینت (سریع، قابل نصب، قابل اعتماد و جذاب) شما فراهم می‌کنند، دور نگه دارد.

منبع

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
در انتظار ثبت رای

9 ماه پیش
pwa
/@heshmati74
عرفان حشمتی
Full-Stack Web Developer

مهندس معماری سیستم های کامپیوتری، طراح و توسعه دهنده وب سایت

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

عرفان حشمتی

Full-Stack Web Developer