یک پرونده **پیکربندی خودکار پراکسی** یا Proxy auto-config (PAC) برای مرورگرهای وب و دیگر عوامل کاربری تعیین می‌کند که چگونگه می‌توانند پراکسی سرور(خدمات دهنده پیشکار) مناسب را برای برقراری ارتباط با یک نشانی وب (URL) انتخاب کنند.

فایل **پی‌ای‌سی** حاوی یک رویه (تابع یا همان فانکشن) جاواسکریپت با چنین ساختاری ست «`FindProxyForURL(url, host)`». این فانکشن مشخصات یک یا چندین روش دسترسی را به صورت رشته (سترینگ) باز می‌گرداند (return). این رشته مشخصات، عامل کاربری را به استفاده از یک پراکسی سرور مشخص گاهی براساس یوآرال هدایت می‌کند یا اینکه دستور می‌دهد که مستقیم و بدون پراکسی با نشانی وب ارتباط برقرار کند.

در یک رشته می‌توان مشخصات چندین پراکسی را که بواسطه نقطه ویرگول (سمی کالن) از هم تفکیک می‌شوند وارد نمود تا در صورتی که هر یک از پراکسی‌ها پاسخ نداد به پراکسی بعدی مراجعه شود. مرورگر دقیقاً پیش از اینکه درخواست را به نشانی وب بفرستد، این فایل را واکشی(fetch) می‌کند تا تغییرات جدید کد این فایل برای مرورگر به روزرسانی شود. آدرس این پی‌ای‌سی، هم می‌تواند به صورت دستی پیکربندی شود هم اینکه توسط WPAD یا پروتکل یافتن خودکار پراکسی وب به صورت خودکار تعیین شود.

تاریخچه
-------

چهارچوب این پرونده در ابتدا توسط نتسکیپ در ۱۹۹۶ برای نتسکیپ نویگیتور ۲٫۰ طراحی شد

لایه‌های پیکربندی پراکسی
------------------------

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

* انتخاب اتوماتیک پراکسی یا همان پیکربندی دستی: تعیین یک هاست نیم یا آی‌پی و یک شماره درگاه یا پورت نامبر برای استفاده در برقراری ارتباط با همه نشانی‌های وب. بیشتر مرورگرها به شما اجازه تعیین یک لیست از دامنه‌های مستثنی (همچون localhost) را می‌دهند که ارتباط با آن‌ها مستقیم و بدون پراکسی باشد.
* پیکربندی خودکار پراکسی یا پی‌ای‌سی: تعیین نشانی وب برای یک فایل پی‌ای‌سی حاوی یک تابع یا فانکشن که پراکسی مناسب را برای هر یوآرال تعیین می‌کند. این روش برای کاربران لپ‌تاپ که نیاز به پیکربندی‌های متعدد پراکسی دارند و کلاً کسانی که به پیکربندی پیچیده پراکسی نیاز دارند مناسب تر است.
* پروتکل یافتن خودکار پراکسی وب (WPAD): به مرورگر اجازه می‌دهد که محل فایل پی‌ای‌سی را بواسطه واکاوی(lookup) دی ایچ سی پی و دی ان اس حدس بزند.

پرونده PAC
----------

پرونده‌ای نوشتاری ست که حداقل یک رویه جاواسکریپت را تعریف می‌کند، یعنی «`FindProxyForURL(url, host)`»، با دو ورودی: url که نشانی مقصد است و هاست که نام رایانه میزبان است که از این نشانی استخراج شده. طبق اصول و به‌طور معمول، پرونده پی‌ای‌سی proxy.pac نامگذاری می‌شود. استاندارد WPAD از نام wpad.dat استفاده می‌کند. در برخی مرورگرها مثل فایرفاکس اگر از پسوندی غیر از pac در نام پرونده استفاده شود کار نخواهد کرد زیرا مرورگر در لیست پسوندهای نامه اینترنتی چند منظوره(MIME) فقط انتظار یکی از انواع استاندارد را دارد یعنی: application/x-ns-proxy-autoconfig یا application/x-javascript-config. اما در افزونه FoxyProxy در فایرفاکس و برخی نرم‌افزارها می‌توان از هر پسوندی مثل js نیز استفاده کرد.

در مواردی که این فایل توسط یک هاست یا سرور برخط (آنلاین) قرار می‌گیرد، دربارهٔ اینکه کدامیک از این دو MIME بهتر است که توسط سرور برای کلاینت (عامل کاربر) در آغازینه(Header) ایچ تی تی پی در پاسخ(response) تعریف شود دلایل کافی وجود ندارد. اگرچه به نظر می‌رسد که application/x-ns-proxy-autoconfig باید توسط کلاینت‌های بیشتری استفاده شود زیرا همان مشخصات اصلی تعریف شده توسط نتسکیپ بوده و گزینه دوم جدیدتر است.

در برخی موارد، ورودی تعیین مکان این پرونده فقط برای یک نشانی برخط اختصاص داده شده مثل فایرفاکس و اینترنت اکسپلورر که برای تعیین یک پرونده پی‌ای‌سی محلی بر خلاف آنلاین (در حافظه رایانه یا تلفن همراه) می‌توان از پیشوند فایل به جای پروتکل استفاده نمود برای مثال در ویندوز برای فایرفاکس: file:///D:/proxy.pac

راهنمای کد
----------

لیست دستورهای تعیین روش ارتباط در رشته بازگشتی از فانکشن شامل: PROXY، SOCKS، SOCKS5 و DIRECT می‌باشد.
یک نمونه کد ساده برای نشانی سرور محلی یا لوکال برای ساکس ۵ در پورت ۱۰۸۰ و و پراکسی ایچ تی تی پی در پورت ۸۵۵۵ :

```
function FindProxyForURL(url, host){
 return "SOCKS5 127.0.0.1:1080; PROXY 127.0.0.1:8555; DIRECT";
}

```

ابتدا از راه پورت ۱۰۸۰ روی آی‌پی ۱۲۷٫۰٫۰٫۱ با ساکس ۵ تلاش می‌کند و اگر به هر دلیل ارتباط شکست خورد و سرور پراکسی پاسخ نداد، بعدی را تست می‌کند یعنی ۸۵۵۵ و با پراکسی و در نهایت اگر هر دو شکست بخورد ارتباط را بدون پراکسی و به صورت مستقیم برقرار می‌کند.

### رویه‌های فطری

رویه‌های از پیش تعریف شده و فطری(native) برای آسان کردن کار در پی‌ای‌سی نیز وجود دارد همچون shExpMatch. نمونه‌ای از یک نشانی و یک آی‌پی رینج استثنا :

```
function FindProxyForURL(url, host) {
 if (shExpMatch(host, "\*.localhost")
 || isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")){
 return "DIRECT";
 }
 return "SOCKS5 127.0.0.1:1080; DIRECT";
}

```

محدودیت‌ها
----------

### dnsResolve و احتمال قفل شدن مرورگر

رویه dnsResolve(و توابع مشابه دیگر) یک لک آپ از دی ان اس سرور انجام می‌دهند که اگر DNSServer برای مدتی طولانی پاسخ ندهد باعث می‌شود که مرورگر قفل کند.

### کاشه اینترنت اکسپلورر و DNS

کش کردن نتایج پی‌ای‌سی براساس نام دامنه در اینترنت اکسپلورر ۵٫۵ یا جدیدتر انعطاف‌پذیری استاندارد پی‌ای‌سی را محدود می‌کند. در واقع، شما می‌توانید پراکسی را براساس نام دامنه انتخاب کنید نه بر اساس نشانی وب. به عنوان راهکار، می‌بایست کش PAC را از رجیستری ویندوز غیر فعال نمایید.

در تغییر وضعیت پیکربندی شبکه (همچون زمانی که به وی پی ان وارد یا خارج می‌شوید)، dnsResolve ممکن است به دلیل کاشه DNS برای مدتی کوتاه نتایج منسوخ را برگرداند. برای نمونه، فایرفاکس معمولاً ۲۰ دامنه استفاده شده را برای ۶۰ ثانیه کش می‌کند. این پیکربندی کش می‌تواند توسط متغیرهای `network.dnsCacheEntries` و `network.dnsCacheExpiration` تنظیم شود. همچنین فلاش کردن (شستن) کاشه سرور نام می‌تواند کمک کند. دستور فلاش در لینوکس `sudo service dns-clean start` می‌باشد.

### isInNet، اینترنت اکسپلورر و دات نت

توصیه می‌شود که در رویه isInNet همیشه از آی‌پی به جای نام دامنه استفاده نمایید، این توصیه برای سازگاری با دیگر اجزا (کامپوننت) ویندوز که از تنظیمات پی‌ای‌سی اینترنت اکسپلورر استفاده می‌کنند همچون چهارچوب دات.نت می‌باشد.

### myIpAddress

فانکشن myIpAddress معمولاً با این عنوان گزارش می‌شود که نتایج نادرست و غیر مفید را برمی گرداند همچون ۱۲۷٫۰٫۰٫۱ که آی‌پی محلی ست. این فانکشن می‌تواند برای استثنا گرفتن همه آی‌پی‌های محلی (localhost و مشابه) (/etc/hosts در لینوکس و %windir%\System32\drivers\etc\hosts در ویندوز) مفید باشد.  
اگر چند آی‌پی محلی موجود باشد، در اینترنت اکسپلورر ۹، فرمان `isInNet("localhost name", "second ip", "255.255.255.255")` نتیجه true را برمی گرداند.

فانکشن myIpAddress فرض می‌کند که سیستم فقط یک آی‌پی نسخه چهار (IPv4) دارد. اگر بیش از یک آی‌پی نسخه ۴ موجود باشد یا آی‌پی نسخه ۶ باشد نتیجه undefined خواهد بود.

### دیگر محدودیت‌ها

محدودیت‌های دیگری در ماشین جاواسکریپتی استفاده شده برای این فایل وجود دارد.

امنیت
-----

در سال ۲۰۱۳، محققان دربارهٔ ریسک‌های امنیتی PAC هشدار دادند. در این گزارش می‌گوید که متهاجم در صورتی که بتواند دستوری را روی سیستم قربانی اجرا کند (برای مثال بواسطه یک برنامه آلوده) که تنظیمات PAC را تغییر دهد آنگاه می‌تواند بدون اینکه شناسایی شود داده‌های اینترنتی یا همان ترافیک اینترنتی کاربر را بر اساس نشانی وب (برای مثال انتخاب نشانی درگاه‌های پرداخت اینترنتی بانک‌ها) به سیستم میانجی یک سارق که به عنوان پراکسی عمل می‌کند هدایت کند. البته لایه ایمن SSL که برای مرورگرها با عنوان پروتکل HTTPS شناخته می‌شود با کدگذاری دوکلیدی (خصوصی-عمومی) نامتقارن می‌تواند از افشا شدن داده‌هایی که کاربر برای مثال به بانک مفرستد جلوگیری کند. زیرا در رمزگذاری دو کلیدی، اطلاعاتی که با کلید عمومی کاربر رمزگذاری می‌شود تنها با کلید خصوصی که فقط در اختیار بانک است قابل رمز گشایی می‌باشد. در این صورت رمزگشایی داده‌ها برای سارق میانجی امری تقریباً غیرممکن است.

جستارهای وابسته
---------------

* 
* Cybercriminals Likely To Expand Use Of Browser Proxies?

منابع
-----

1. ↑  «Navigator Proxy Auto-Config File Format». Netscape Navigator Documentation. March 1996. Archived from the original on 2007-06-02. Retrieved 2013-07-05. بایگانی‌شده از اصلی در ۲ ژوئن ۲۰۰۷. دریافت‌شده در ۳ مارس ۲۰۱۵. پیوند خارجی در `|ناشر=` وجود دارد (کمک)
2. ↑  «رویه‌های پی‌ای‌سی». findproxyforurl.com.
3. ↑  مشارکت‌کنندگان ویکی‌پدیا. «Proxy auto-config». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۰۳ مارس ۲۰۱۵.
4. ↑  مشارکت‌کنندگان ویکی‌پدیا. «Proxy auto-config». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۰۳ مارس ۲۰۱۵.
5. ↑  «Cybercriminals Likely To Expand Use Of Browser Proxies». darkreading.com. ۶ مارس ۲۰۱۳. بایگانی‌شده از اصلی در ۵ ژوئیه ۲۰۱۳. دریافت‌شده در ۵ ژوئیه ۲۰۱۳.

| * ن
* ب
* و
فناوری‌های دور زدن سانسور اینترنتی |
| --- |
| پیش‌زمینه | 
* سانسور اینترنت
	+ فیلترینگ اینترنت در چین
	+ اینترانت ملی
* فناوری‌های سانسور و مسدودسازی
	+ مسدود کردن آدرس آی‌پی
	+ مسمومیت‌گر سامانه نام دامنه
	+ فیلتر واژه‌ها
	+ دیوار آتش بزرگ چین
* مسدود شدن وبگاه‌های خاص
	+ فیسبوک
	+ توئیتر
	+ ویکی‌پدیا

 |
| اصول | 

|  |  |
| --- | --- |
| با پراکسی سرور | 
* همتابه‌همتا (P2P)
* وب پراکسی
* پوسته ایمن (SSH)
* شبکه خصوصی مجازی (VPN)
* پیکربندی خودکار پراکسی (PAC)

 |
| بدون پراکسی سرور | 
* پروتکل امن انتقال ابرمتن (HTTPS)
* مکانیزم انتقال پروتکل اینترنت نسخه ۶
* میزبان‌ها
* دی‌ان‌اس‌کریپت
* دامنه صوری
* شبکه انکساری

 |

 |
| نرم‌افزارهای ضد سانسور | 

|  |  |
| --- | --- |
| نرم‌افزارهای آزاد | 
* لنترن
* سایفون
* شدوساکس
* وی‌پی‌ان اوت‌لاین
* *گوایجنت*
* *پایرت‌باکس*
* سافت‌اتر وی‌پی‌ان
* وایرگارد

 |
| نرم‌افزارهای اختصاصی | 
* فری‌گیت
* اولتراسرف
* هات‌اسپات شیلد
* *گاردن نتورکس*
* *تلکس*
* سی‌جی‌آی‌پراکسی
* پراکسیفای

 |
| افزونه‌های مرورگر | 
* *یوپراکسی*

 |

 |
| ناشناس بودن | 

|  |  |
| --- | --- |
| نرم‌افزارهای ناشناس | 
* تور
* جپ (جان‌دونیم)
* فلش پراکسی
* میکس‌مستر

 |
| شبکهٔ همتابه‌همتای ناشناس | 
* فری‌نت
* پروژه اینترنت مخفی (I2P)
* استیلث‌نت
* تریبلر
* زیرونت

 |

 |
| روش‌های دور زدن فیزیکی | 
* اسنیکرنت
* یواس‌بی دد دراپ

 |
| سازمان‌های مرتبط | 
* گریت‌فایر
	+ فری‌وایبو
* تارکی بلاکس

 |
| مرجع | 
* گریت کنون

 |
| نوشته‌های *ایتالیک* نشانگر این هستند که پشتیبانی از ابزار متوقف شده است.  **رده**  **انبار** |

| * ن
* ب
* و
مرورگرهای وب |
| --- |
| 
* مقایسه
* History
* List
	+ for Unix
* Timeline
* سهم استفاده

 |
| 

|  |  |
| --- | --- |
| ویژگی‌ها | 
* Ad filtering
* افزونه مرورگر
* Bookmarks
	+ بوکمارکلت
	+ Live bookmark
	+ Smart Bookmarks
* افزونه مرورگر
* امنیت مرورگر
* Browser synchronizer
	+ comparison
* Cookies
* مدیر دانلود
* فاوآیکن
* Incremental search
* افزایه
* Privacy mode
* Tabs
* Universal Edit Button

 |
| استانداردهای وب | 
* پروژه استانداردهای وب
* شیوه‌نامهٔ آبشاری
* اچ‌تی‌ام‌ال
* اچ‌تی‌ام‌ال۵
* جاوااسکریپت
* مث‌ام‌ال
* OCSP
* SVG
* وب‌جی‌ال
* اکس‌اچ‌تی‌ام‌ال

 |
| موضوعات مرتبط | 
* BrowserChoice.eu
* CRL
* HTTP
* HTTPS
* iLoo
* مجموعه نرم‌افزار اینترنتی
* Man-in-the-browser
* Mobile Web
* Offline reader
* PAC
* Pwn2Own
* برنامه‌های غنی اینترنتی
* Site-specific browser
* اسپیدی
* SSL/TLS
* وب‌سوکت
* ویجت
* وب جهان‌گستر
* WPAD
* اکس‌ام‌ال

 |

 |
| 

| رومیزی |
| --- |
| 

|  |  |
| --- | --- |
| بر پایه وب‌کیت | 
* *Arora*
* آوانت
* کرومیوم
	+ گوگل کروم
	+ دراگون
	+ اپیک
	+ اپرا
	+ SRWare Iron
	+ Torch
	+ مرورگر یاندکس
* Dooble
* *فلاک*
* Fluid
* iCab
* کانکرور
* Lunascape
* مکستون
* میدوری
* OmniWeb
* Origyn Web Browser
* QtWeb
* کوپ‌زیلا
* ریکانک
* سفاری
* *Shiira*
* سلیپنیر
* Uzbl
* وب
* WebPositive
* xombrero

 |
| بر پایه ترایدنت | 
* *مرورگر ای‌اوال*
* آوانت
* *Deepnet Explorer*
* GreenBrowser
* اج
* اینترنت اکسپلورر
* Lunascape
* مکستون
* *MediaBrowser*
* MenuBox
* *NeoPlanet*
* *NetCaptor*
* سلیپنیر
* SlimBrowser
* *SpaceTime*
* *UltraBrowser*
* WebbIE
* ZAC Browser

 |
| بر پایه گکو | 
* *AT&T Pogo*
* آوانت
* *Camino*
* فایرفاکس موزیلا
	+ کانکرر
	+ گنو آیس‌کت
	+ IceDragon
	+ پیل‌مون
	+ Pentadactyl
	+ *Swiftfox*
	+ *Swiftweasel*
	+ TenFourFox
	+ Timberwolf
	+ Vimperator
	+ *xB Browser*
* *Galeon*
* *Ghostzilla*
* *کا-ملین*
* *Kazehakase*
* Kirix Strata
* *Lotus Symphony*
* Lunascape
* *Mozilla*
	+ *Beonex Communicator*
	+ Classilla
	+ *نت‌اسکیپ*
	+ سی‌مانکی

 |
| بر پایه متن | 
* ELinks
* *گنو ایمکس*
* *Line Mode Browser*
* Links
* لینکس
* *Net-Tamer*
* w3m

 |
| سایر | 
* abaco
* Amaya
* *Arachne*
* *Arena*
* Charon
* دیلو
* Gazelle
* *IBM Home Page Reader*
* *IBrowse*
* KidZui
* *Mosaic*
* *Mothra*
* *NetPositive*
* NetSurf

 |

 |

 |
| 

| همراه |
| --- |
| 

|  |  |
| --- | --- |
| بر پایه وب‌کیت | 
* Android Browser
* مرورگر بولت
* Chrome
* مرورگر دلفین
* Nintendo 3DS Internet Browser
* Rockmelt
* S60 web browser
* سافاری
* آمازون سیلک
* Steel

 |
| بر پایه گکو | 
* فایرفاکس برای تلفن همراه
* *MicroB*
* *Minimo*

 |
| بر پایه پرستو | 
* Nintendo DS & DSi Browser
* اپرا مینی
* اپرا موبایل

 |
| سایر | 
* بلک‌بری
* Blazer
* *Deepfish*
* *Galio*
* ibisBrowser
* اینترنت اکسپلورر موبایل
* Iris Browser
* کانکرور
* NetFront
* Obigo Browser
* Skweezer
* اسکای‌فایر
* Teashark
* ThunderHawk
* uZard Web
* Vision
* WinWAP

 |

 |

 |
| 

| تلویزیون و کنسول بازی |
| --- |
| 

|  |  |
| --- | --- |
| بر پایه وب‌کیت | 
* گوگل تی‌وی
* NetFront
* استیم اورلی
* Wii U Internet Browser

 |
| بر پایه گکو | 
* Kylo

 |
| بر پایه پرستو | 
* Internet Channel

 |
| سایر | 
* *Galio*
* MSN TV (WebTV)

 |

 |

 |
| 
* Software no longer in development shown in *italics*

* Category
* Commons
* نشان درگاه درگاه Internet
* نشان درگاه درگاه Software

 |