Articulos de Colaboradores
Codigos Fuente
Compiladores
Documentos y Manuales
Programas y Librerias
Recursos y Articulos
Videotutoriales
Servidores (Aplicaciones)
Controles ActiveX

Analisis SEO
Conocer PageRank
Encriptar JS/HTML
Convertir HTML a JavaScript
Convertir HTML/JS a PHP
Tablas ASCII/HTML
Alertas de Virus
Base Windows API
Directorio de Empresas
Libros de Informatica
Rotador de Banners

ARTICULOS TECNICOS SOBRE PROGRAMAS Y PROGRAMACION
PROGRAMACION Y DISEÑO PARA PROGRAMADORES Y WEBMASTERS


Proteccion de Scripts - Programacion y Codigos en Perl







Protege tus Scripts de sitios no autorizados
Christian Gustavo Riva

Una de las ventajas de los scripts CGI es que puedes configurar sus variables al momento de llamarlos (script.cgi?variable=valor).
Esta posibilidad te permite, entre otras cosas, seleccionar ante cada ejecucion del mismo un email donde deberan ser enviados determinados resultados, o la direccion Web donde se redireccionara al usuario una vez concluido el proceso.
Hacer uso de estas caracteristicas te permitira, por ejemplo, alojar tan solo una copia de tu script en un servidor en particular, y acceder al mismo desde distintos sitios Web, pudiendo incluso ofrecer la funcionalidad del mismo a tus clientes y/o asociados sin necesidad de instalar una copia del script en sus servidores.

Aplicaciones que aprovechan esta posibilidad son los procesadores de formularios (aceptar resultados, enviarlos a un email, y luego redireccionar hacia una pagina de agradecimiento), los scripts utilizados para Recomendar una pagina Web (peticion de los emails, envio de la invitacion, y redireccionar al usuario), etc.
El problema de utilizar este modelo abierto de diseño es que asi como tu y tus clientes pueden acceder al script enviandole tan solo un par de variables para su personalizacion, cualquier otro Webmaster podra hacer lo mismo sin tu autorizacion y consumiendo los recursos de tu servidor.
Para evitar esto y proteger nuestros scripts, haremos uso de la variable de entorno HTTP_REFERER, la cual contiene la direccion Web desde donde el script esta siendo llamado.
En caso de que la direccion de origen nos sea desconocida, redireccionaremos al cliente hacia una pagina destinada a tal fin.
Incluso esta misma proteccion nos servira para que el script evite hacer lo que debe si esta siendo llamado por los llamados "Spiders" o "Robots", utilizados por los directorios al momento de indexar nuestra pagina Web, ya que estos se cuelgan de todo enlace que encuentren en nuestra pagina y pertenezcan a nuestro dominio, incluidos los scripts cgi.
Las siguientes lineas de codigo te mostraran como puedes implementar esta funcionalidad en cualquiera de tus scripts, agregandolas al inicio de los mismos.

Recuerda que el codigo es para uso libre y su finalidad es introducirte en los conceptos que trata y animarte a que experimentes por tu cuenta.
Si publicas u ofreces a terceros una version modificada del mismo, no olvides mencionar al autor original como figura en su cabecera.

PROTECCION.PL
###################################
# (C) 2001 Christian Gustavo Riva #
# http://www.programasprogramacion.com #
###################################
#!/usr/bin/perl

## Cargamos en la matriz los dominios de los sitios
## a los cuales les daremos el visto bueno para
## continuar ejecutando el script:

my @SitiosAutorizados = ( "www.programasprogramacion.com",
"63.95.137.150",
"www.fonomax.com" );

## Por omision, cancelamos el uso del script:

my $Cancelar = 1;

## Tomamos la direccion Web desde la cual el
## script esta siendo ejecutado:

my $Origen = $ENV{'HTTP_REFERER'};

## Definimos la pagina Web hacia donde redireccionaremos
## al cliente si proviene de un sitio no autorizado:

my $PaginaError = "http://www.programasprogramacion.com/error.htm";

## Recorremos uno por uno los items de la matriz:

foreach (@SitiosAutorizados)
{
## La direccion de origen contiene en su sintaxis
## a alguno de los dominios autorizados?
## Si si, cancelamos y salimos del foreach:
if( $Origen=~/$_/i ) { $Cancelar=0; last; }
}

## No fue reconocido el dominio de origen?
## Redireccionamos al cliente hacia la pagina predeterminada:

if($Cancelar) { print "Location: $PaginaError\n\n"; exit; }

## Y aqui continua el codigo natural de tu script
## con la seguridad de que esta siendo corrido desde
## un sitio autorizado para hacerlo.
 






A continuacion puedes escribir tus comentarios sobre esta pagina:





ProgramasProgramacion.com (ex-CGR Software.com) © 2001-2018 C.G.R. @ Buenos Aires, Republica Argentina
Contacto | Thumbshots