Seguridad : Dispositivo de seguridad web Cisco

¿Cuál es un archivo Pac del proxy y hay ejemplos?

17 Octubre 2016 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Agosto 2015) | Comentarios

Contenido

Contribuido por Khoa Nguyen y Siddharth Rajpathak, ingenieros de Cisco TAC.

Pregunta:

¿Cuál es un archivo Pac del proxy, y hay ejemplos?

Entorno: Dispositivo de seguridad de la red de Cisco

Nota: Este artículo sobre Knowledge Base se refiere al software que no es mantenido ni es soportado por Cisco.  La información se proporciona como cortesía para su conveniencia. Para la asistencia adicional, entre en contacto por favor al proveedor de software.

Link de referencia: Javascript o ejemplos de archivo del Auto-proxy de JScript


Javascript o ejemplos de archivo del Auto-proxy de JScript

Los scripts siguientes proporcionan los ejemplos de cómo un archivo “.pac” se podría utilizar para especificar un auto-proxy URL. Para utilizar estas funciones, usted debe cambiar los nombres, los números del puerto, y los IP Addresses del proxy.

  1. Las funciones del isInNet, isResolvable, y del dnsResolve preguntan a un servidor DNS
  2. Las referencias a los objetos, a las propiedades, o a los métodos del modelo de objeto hacen el archivo de la autoconfiguración del proxy fallar silenciosamente. Por ejemplo, las referencias window.open (...), la alerta (...), y la contraseña (...) todo hacen el archivo de la autoconfiguración del proxy fallar en el Internet Explorer.

Ejemplo 1: Los host locales conectan directo, todos los demás conectan vía el proxy

Los controles de funcionamiento siguientes para ver si el nombre de host es un host local, y si es, si la conexión es directa. Si el nombre de host no es un host local, la conexión está con el proxy (proxy).
función FindProxyForURL (URL, host)
 {
 si (isPlainHostName(host))
 vuelva “DIRIGEN”;
 
 vuelva el “PROXY el proxy:80";
 }

Los controles de funcionamiento del isPlainHostName para ver si hay algunos puntos en el nombre de host. Si es así vuelve falso; si no, la función vuelve verdad.

Nota: Para una conexión directa al web server local, un dominio o una coincidencia de la subred pudo también ser necesaria. No todas las peticiones a los web server locales se hacen usando apenas los nombres de host

Ejemplo 2: Los host dentro del Firewall conectan a los servidores locales directos, exteriores conectan vía el proxy

Los controles de funcionamiento siguientes para considerar si el host es un nombre de host “llano” (que significa el Domain Name no son incluidos) o parte de un dominio determinado (.company.com) pero el nombre de host no es WWW u hogar.
función FindProxyForURL (URL, host)
 {
 si ((isPlainHostName(host) ||
 dnsDomainIs (host, “.company.com”)) &&
 ¡! && de los localHostOrDomainIs (host, “www.company.com ")
 ¡! localHostOrDoaminIs (host, “home.company.com”))
 vuelva “DIRIGEN”;
 
 vuelva el “PROXY el proxy:80";
 }


Nota:

  • La función de los localHostOrDomainIs se ejecuta solamente para los URL en el dominio local.
  • La función de los dnsDomainIs vuelve verdad si el dominio del nombre de host hace juego el dominio dado.

Ejemplo 3: Si el host es resolvable, conecte directo. Si no conecte usando un proxy.

La función siguiente pide que el servidor DNS intente resolver el nombre de host pasajero a ella. Si puede, después se hace una conexión directa. Si no puede, la conexión se hace vía el proxy. Esto es útil cuando utilizan a un servidor DNS interno para resolver todos los nombres de host internos.
función FindProxyForURL (URL, host)
 {
 si (isResolvable(host))
 vuelva “DIRIGEN”;
 
 vuelva el “PROXY el proxy:80";
 }

Vea la nota sobre la función isResolvable en la cima de la página.


Ejemplo 4: Si el host está en la subred especificada, conecte directo. Si no conecte usando un proxy.

La función siguiente compara un modelo y una máscara dados de la dirección IP con el nombre de host. Esto es útil si ciertos host en una subred están conectados directamente y otros están conectados usando un proxy.
función FindProxyForURL (URL, host)
 {
 si (isInNet (host, el "999.99.9.9", el "255.0.255.0"))
 vuelva “DIRIGEN”;
 
 vuelva el “PROXY el proxy:80";
 }

Vea la nota sobre la función del isInNet en la cima de la página.

La función del isInNet (host, modelo, máscara) vuelve verdad si la dirección IP del host hace juego el modelo especificado. La máscara indica qué parte de la dirección IP a hacer juego (255=match, 0=ignore).


Ejemplo 5: Determine el Tipo de conexión basado en el dominio del host

La función siguiente especifica una conexión directa si el host es local. Si el host no es local, esta función determina que el proxy para utilizar basó en el dominio del host. Esto es útil si el Domain Name del host es uno de los criterios para la selección del proxy.
función FindProxyForURL (URL, host)
 {
 si (isPlainHostName(host))
 vuelva “DIRIGEN”;
 si (shExpMatch (host, “*.com”))
 vuelva el “PROXY el comproxy:80";
 si (shExpMatch (host, “*.edu”))
 vuelva el “PROXY el eduproxy:80";
 
 vuelva el “proxy del PROXY”;
 }

La función del shExpMatch (str, shexp) vuelve verdad si el str hace juego el shexp usando los modelos de la expresión del shell.


Ejemplo 6: Determine el Tipo de conexión basado en el protocolo que es utilizado

La función siguiente extrae el protocolo que es utilizado y hace una selección del proxy por consiguiente. Si no se hace ninguna coincidencia en el protocolo, después se hace una conexión directa. Esto es útil si el protocolo que es utilizado es uno de los criterios para la selección del proxy.
función FindProxyForURL (URL, host)
 {
 si (url.substring(0, 5) HTTP del == “: ") {
 vuelva el “PROXY el proxy:80";
 }
 si (url.substring(0, 4) ftp del == “: ") {
 vuelva el “PROXY el fproxy:80";
 }
 si (url.substring(0, 7) Gopher del == “: ") {
 vuelva el “gproxy del PROXY”;
 }
 si (url.substring(0, 6) https del == “: ") {
 vuelva el “PROXY el secproxy:8080";
 }
 {
 vuelva “DIRIGEN”;
 }
 }

La función de la subcadena extrae el número especificado de caracteres de una cadena.


Ejemplo 7: Determine la configuración de representación marcando para ver si el nombre de host corresponde con el IP Address

La función siguiente hace una selección del proxy traduciendo el nombre de host en una dirección IP y comparándolo a una cadena especificada.
función FindProxyForURL (URL, host)
 {
 si (== el "999.99.99.999") {//= http://proxy del dnsResolve(host)
 vuelva el “PROXY el secproxy:8080";
 }
 {
 vuelva el “PROXY el proxy:80";
 }
 }

Vea la nota sobre la función del dnsResolve en la cima de la página.

Ejemplo 8: Si IP del host las coincidencias especificaron el IP, conecte vía el proxy, conectan directo

La función siguiente es otra manera de hacer una selección del proxy basada en especificar una dirección IP. Este ejemplo, el a diferencia del ejemplo 7, utiliza la llamada de función para conseguir explícitamente la dirección IP numérica (el ejemplo 7 utiliza la función del dnsResolve para traducir el nombre de host a la dirección IP numérica).
función FindProxyForURL (URL, host)
 {
 si (== el "999.99.999.99" del myIpAddress()) {
 vuelva el “PROXY el proxy:80";
 }
 {
 vuelva “DIRIGEN”;
 }
 }

La función de los myIpAddress vuelve la dirección IP (en el formato del número-punto) del host que el navegador está funcionando con encendido.

Ejemplo 9: Si hay algunos puntos en el nombre de host, conecte usando un proxy. Si no, conecte directo.

Los controles de funcionamiento siguientes para ver cuántos puntos están en el nombre de host. Si hay algunos puntos en el nombre de host, haga una conexión vía el proxy. Si no hay puntos en el nombre de host, haga una conexión directa. Ésta es otra manera de determinar los Tipos de conexión basados en las características del nombre de host.
función FindProxyForURL (URL, host)
 {
 si (dnsDomainLevels(host) > 0) {//si el número de puntos en el host > 0
 vuelva el “PROXY el proxy:80";
 }
 vuelva “DIRIGEN”;
 }

La función de los dnsDomainLevels vuelve un número entero igual al número de puntos en el nombre de host.


Ejemplo 10: Especifique los días de la semana para conectar vía el proxy, otros días conectan directo

La función siguiente determina el Tipo de conexión especificando los días de la semana que son apropiados para un proxy. Los días que no bajan entre estos parámetros utilizan una conexión directa. Esta función podría ser útil en las situaciones donde usted puede ser que quiera utilizar un proxy cuando el tráfico es pesado y permitir una conexión directa cuando el tráfico es luz.
función FindProxyForURL (URL, host)
 {
 si (weekdayRange (“CASESE”, “SAT”, “GMT”))
 vuelva el “PROXY el proxy:80";
 
 vuelva “DIRIGEN”;
 }

La función del [, GMT] weekdayRange(day1 [,day2]) vuelve si el tiempo de sistema actual baja dentro del rango especificado por los parámetros day1, day2, y GMT. Solamente se requiere el primer parámetro. El parámetro GMT supone que los valores del tiempo son en la hora media de Greenwich bastante que el huso horario local.


Ejemplo 11: Equilibrio de carga con una función de los cálculos sencillos

función FindProxyForURL (URL, host) {
vuelva el randomProxy();
}
randomProxy() de la función
{
conmute (Math.floor (Math.random () *2))
{
caso 0: vuelva el “PROXY 1.1.1.1:3128; PROXY 2.2.2.2; PROXY DIRECTO; ”
caso 1: vuelva el “PROXY 2.2.2.2:3128; PROXY 1.1.1.1; PROXY DIRECTO; ”
}
}

Usted verá que los casos también implementan una Conmutación por falla en caso de que un proxy no esté disponible.



Document ID: 118076