2012-02-29 18 views
5

Piszę plik .pac do użytku z iOS5 bez jailbreak, ale mam kłopot z dopasowaniem adresu URL zaczynając od "https" (np: https://test.com).HTTPS w pliku PAC

Oto mój skrypt:

function FindProxyForURL(url, host) { 
    if (shExpMatch(url, "https://*")) return "PROXY 123.123.123.123"; 
    return 'DIRECT'; 
} 

A gdybym dopasowane "https://test.com", jak mogę wrócić "https://123.123.123.123" do adresu URL?

Odpowiedz

1

Nie można zaimplementować proxy protokołu HTTPS bez złamania zabezpieczeń typu end-to-end, co jest jego pojedynczą cechą wyróżniającą. Powód, dla którego twoje mecze "nie działają", to ignorowanie pliku PAC dla HTTPS.

Kierowanie ruchu między przeglądarką a urządzeniem pośredniczącym na urządzeniu przez protokół HTTPS jest również bezcelowe, niezależnie od tego, czy jest to technicznie możliwe. Wyobrażam sobie, że stało się to niemożliwe ze względów bezpieczeństwa (aby użytkownicy nie dali się oszukać, że ruch jest bezpieczny, gdy nie jest), ale nie zbadałem.

+3

To nie prawda, plik PAC nie jest ignorowany z HTTPS - HTTPS * może * być bezpiecznie proxy przy użyciu metody CONNECT, która zasadniczo przekazuje strumień TCP z komputera klienckiego za pośrednictwem serwera proxy do komputera zdalnego. Połączenie jest nadal szyfrowane, a serwer proxy nie może wyświetlać żadnego ruchu w postaci zwykłego tekstu. – Johnny

+0

Dobrze. Plik PAC nie jest ignorowany, a dla celu HTTPS używana jest metoda CONNECT. W takim przypadku serwer proxy nie jest świadomy komunikacji między serwerem a klientem. Dodanie komentarza, ponieważ zaakceptowana odpowiedź rozsyła błędne informacje. –

+0

Dzięki za aktualizacje. Niestety nie mogę usunąć tej odpowiedzi, ponieważ jest ona akceptowana. – tripleee

0

Użyj tego:

if (shExpMatch(url, "https:**"))

ten powinien to naprawić.