Aracılığıyla paylaş


WinHTTP'da Otomatik Sağlama Sorunları

WinHTTP otomatik sağlama özelliğini kullanırken aşağıdaki önemli sorunları göz önünde bulundurun.

Şu Anda Yalnızca Bir Ara Sunucu Destekleniyor

WinHTTP şu anda birden fazla proxy sunucusu belirten proxy yapılandırmalarını desteklememektedir. WinHttpGetProxyForUrl, uygulamanın WINHTTP_OPTION_PROXY seçeneğini kullanarak istek tutamacında ayarladığı ara sunucu listesini içeren bir WINHTTP_PROXY_INFO yapısı döndürürse, WinHTTP yalnızca listedeki ilk ara sunucuyu kullanır. Bu ara sunucu erişilebilir değilse, WinHTTP listedeki diğer proxy sunuculardan hiçbirine yük devretme yapmaz. WINHTTP_OPTION_PROXY seçeneğini listede bir sonraki ara sunucuyla yeniden ayarlayarak ve isteği yeniden göndererek bu durumu işlemek uygulamaya bağlı.

Güvenlik Riskini Azaltma

Ara sunucu otomatik yapılandırma dosyasının işlenmesi için indirilen betik kodunun yürütülmesi gerekir. Dikkate alınması gereken bazı güvenlik endişeleri: PAC dosyasının bulunduğu sunucunun güvenliği aşılmışsa, PAC betik kodu kötü amaçlı olabilir. Bu nedenle, WinHTTP istemciyi korumak için aşağıdaki önlemleri kullanır:

  1. Betik kodunun herhangi bir ActiveX nesnesinin örneğini oluşturması engellenir. Bu, dosyalara erişme ve ağ G/Ç'sini gerçekleştirme gibi tehlikeli olabilecek birçok işlevi engeller.

  2. **Windows Server 2003: **WinHttpGetProxyForUrl, WPAD işleminin tamamını düşük ayrıcalıklı Yerel Hizmet yerleşik kullanıcı hesabı altında çalışan winHTTP Web Proxy Otomatik Bulma hizmeti olan işlem dışı bir hizmete devrediyor.

  3. SP2 ve Windows Server 2003 ile Windows XP'yi : Bir PAC betiğinin 60 saniyeden uzun süre yürütülmesine izin verilmiyor ve bundan sonra betik yürütme sonlandırılıyor.

  4. SP2 ve Windows Server 2003 ile Windows XP : winhttp 1 MB'tan büyük PAC dosyalarını reddeder. Tipik bir PAC dosyasının boyutu genellikle birkaç kilobayttan fazla değildir.

WinHTTP betiği yürütmek için Microsoft JScript bileşenini kullandığından, PAC betik kodunu işlemenin COM kullanımını gerektirdiğini unutmayın. WinHTTP, WPAD protokolü işlemeyi dış, işlem dışı bir Web Proxy'si Otomatik Bulma hizmetine devredemiyorsa WinHttpGetProxyForUrl, çağrı süresi boyunca uygulama işlemi içinde COM çalışma zamanını yükler. Uygulamanın kendisi zaten COM kullanıyorsa, bu bir sorun olmamalıdır.

PerformansLa İlgili Dikkat Edilmesi Gerekenler

Otomatik algılama işlemi, muhtemelen birkaç saniye kadar yavaş olabilir. WinHttpGetProxyForUrlve WinHttpDetectAutoProxyConfigUrlişlevleri zaman uyumlu işlevleri engelliyor. Belirli bir otomatik algılama mekanizması (DHCP gibi) diğerinden (DNS gibi) çok daha yavaş olabilir. Hem WINHTTP_AUTO_DETECT_TYPE_DHCP hem de WINHTTP_AUTO_DETECT_TYPE_DNS_A otomatik algılama bayrakları belirtilirse WinHTTP, WPAD belirtimine uygun olarak önce DHCP kullanır. DHCP isteği vererek PAC URL'si bulunamazsa WinHTTP, PAC dosyasını iyi bilinen bir DNS adresinde bulmaya çalışır.

winhttpgetproxyforurlPAC dosyasını önbelleğe almak için WinHTTP Oturum tanıtıcı parametresini ve otomatik algılama sonuçlarını kullanır. Birden çok WinHttpGetProxyForUrl çağrıları için aynı oturum tutamacını kullanmak, mümkünse PAC URL'sini algılamayı ve dosya indirmeyi önlemek için en iyisidir. PAC dosyası yalnızca bellek içinde önbelleğe alınır ve uygulama oturum tutamacını kapattığında atılır.

Otomatik sağlamanın performans etkisi nedeniyle, özelliği yalnızca masaüstü istemci uygulamalarının veya hizmetlerinin kullanması önerilir; sunucu tabanlı uygulamalar "ProxyCfg.exe" yardımcı programını kullanarak sunucu yöneticisine güvenmelidir.