# نشتی تایم زون
نشتی تایم زون زمانی اتفاق می افتد که زمان به دست آمده از مرورگر با زمان ناحیه جغرافیایی فیلترشکن شما متفاوت باشد.


## روش تست نشتی تایم زون
با استفاده از سایت [webbrowsertools.com](https://webbrowsertools.com/timezone/) میتوان نشتی تایم زون را بررسی کرد. این سایت با استفاده از شش روش مختلف نتیجه را بررسی میکند. مورد آخر (aggressive) توانایی خوبی در شناخت دقیق تایم زون مرورگر دارد.

همانطور که در تصویر زیر مشاهده می کنید، بدون استفاده از افزونه، با اجرای یک کد ساده جاوااسکریپت توسط سایت، تایم زون ایران برای سایت قابل تشخیص است و تفاوت با تایم زون فیلترشکن موجب لو رفتن شما خواهد شد.

![timezone](https://github.com/user-attachments/assets/88378f24-af83-4b20-856a-29aff955219b)


روش بعدی استفاده از کنسول خود مرورگر می باشد. با استفاده از تیکه کد زیر در کنسول میتوانید تایم زون مرورگر خود را پیدا کنید.
```
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
```
![timezone2](https://github.com/user-attachments/assets/50cb908f-1007-4e3e-8a0b-6b506f744302)


## جلوگیری از نشتی تایم زون
برای جلوگیری از نشتی تایم زون دو روش پیشنهاد میشود.
### 1- استفاده از افزونه No Script
با استفاده از این افزونه در [مرورگر کروم](https://chromewebstore.google.com/detail/noscript/doojmbjmlfjjnbmnoijecmcbfeoakpjm)  و [مرورگر فایرفاکس](https://addons.mozilla.org/addon/noscript/) دیگر اجازه اجرای کدهای جاوااسکریپت در مرورگر به سایتها داده نمی شود. با جلوگیری از اجرای کد جاوااسکریپت دیگر سایت قادر به استخراج تایم زون شما نخواهد بود.

![timezone3](https://github.com/user-attachments/assets/9b2aeec9-8c40-4106-b9af-2da6195701e1)


استفاده از این افزونه معایبی نیز به همراه دارد. در بعضی سایتها امکان دارد تمامی امکانات سایت نمایش داده نشود. لذا از این افزونه با علم به این موضوع استفاده شود.

### 2- استفاده از افزونه Spoof Timezone
با استفاده از این افزونه در [مروگر کروم](https://chromewebstore.google.com/detail/spoof-timezone/kcabmhnajflfolhelachlflngdbfhboe?hl=en) و [مرورگر فایرفاکس](https://addons.mozilla.org/en-US/firefox/addon/spoof-timezone/) می توانید نشتی تایم زون را تا حد خوبی کاهش بدهید. استفاده از این افزونه به دو حالت است.
* حالت اول: ساعت صفر گرینویچ
 در صورتی که تغییراتی در تنظیمات این افزونه ندهید، این افزونه ساعت صفر گرینویچ را به عنوان ساعت سیستم برمیگرداند.
* حالت دوم: ساعت سیستم مطابق با آیپی فیلترشکن
برای تنظیم این حالت ابتدا بر روی افزونه راست کلیک کنید و از منوی باز شده بر روی Options کلیک کنید. سپس تیک گزینه Automatically update timezone based on my IP address را فعال کنید. برای اعمال شدن تغییرات بر روی افزونه راست کلیک کرده و گزینه Update Timezone from IP را انتخاب کنید تا تایم زون منطبق بر آیپی شما قرار گیرد. هر بار که سرور فیلترشکن را عوض کردید باید مرحله آخر یعنی آپدیت تایم زون بر اساس آیپی را طی کنید.

![timezone4](https://github.com/user-attachments/assets/3cffd23f-eaa6-498d-8389-4bf25bc64915)


این نکته را به خاطر داشته باشید که سایت معرفی شده از شش روش مختلف برای به دست آوردن تایم زون مرورگر استفاده میکند. روش ششم روش سختگیرانه ای برای به دست آوردن تایم زون است. همانطور که در عکس زیر مشاهده میکنید، علیرغم استفاده از افزونه Spoof Timezone باز هم منطقه زمانی شما لو رفته است.
اما افزونه NoScript به طور کامل این قابلیت را غیر فعال میکند.

![timezone5](https://github.com/user-attachments/assets/81df96a1-3418-4d10-8b18-3c6a095b3dc9)

