• Publicidad

Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor Alfumao » 2011-11-20 10:07 @463

¿Por qué no puedo usar este encabezado
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!c:/perl/bin/perl -T
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
en Perl 5.14 corriendo en Windows, para implementar el "#!c:/perl/bin/perl"?

Cuando lo escribo me sale el siguiente mensaje de error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
"-T" is on the #! line, must also be used on the comand line.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿A qué linea de comandos se refiere, a la de llamada del CGI?

Gracias por adelantado.
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Publicidad

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor explorer » 2011-11-20 13:03 @586

El mensaje de error se refiere a cuando ejecutas el programa desde la línea de comandos.

Dice que, si está marcada la opción '-T' en la línea shebang, también debe indicarse en la línea de comandos (en la terminal), cuando lo ejecutas de forma directa.

Así que, en lugar de escribir (en la línea de comandos)

perl programa.pl

o

./programa.pl

o

programa.pl

debes escribirlo así:

perl -T programa.pl

o

./programa.pl -T

o

programa.pl -T

No se refiere a cuando se ejecuta en modo CGI, sino solo cuando es ejecutado de forma directa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor Alfumao » 2011-11-20 14:14 @635

Pues entonces no sé por qué deja de funcionar el CGI cuando hago el cambio y le pongo el -T en la línea de encabezado...

¿No hay una línea tipo "use warnings;" para poder poner la opción de Taint sin que dé error al ejecutar el programa?
Siento mucho venir siempre preguntando por cosas tan raras.
:wink:

Un saludo y gracias
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor explorer » 2011-11-20 18:17 @803

¿Qué mensaje de error sale en los ficheros log del del servidor web?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor Alfumao » 2011-11-20 18:45 @822

Me sale esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Insecure dependency in open while running with -T switch at C:/xampp/htdocs/...
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor explorer » 2011-11-20 19:23 @849

Taint está haciendo su trabajo :)

Te está diciendo que estás intentando abrir un fichero usando una variable que está contaminada ("entintada", tained) con información -insegura- del exterior del programa (posiblemente enviada por un usuario, pero podría ser un hacker malicioso).

Debes descontaminar esa variable, antes de poder utilizarla.

Es lo que tiene usar el modo Taint, que nos obliga a estas normas de seguridad, para que no haya agujeros de seguridad.

Más información en perldoc perlsec. Busca por "Insecure dependency".
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor Alfumao » 2011-11-21 04:57 @248

Voy a mirar la documentación que me señalaste, pero antes te dejo las líneas completas del error y la línea del CGI donde se localiza el problema. No alcanzo a comprender que es lo dañino...

[Sun Nov 20 20:06:18 2011] [error] [client 127.0.0.1] Insecure dependency in open while running with -T switch at C:/xampp/htdocs/DB/C_SQL3.cgi line 97., referer: http://localhost/DB/CI.html

La línea implicada en el error de "Taint" y la relacionada con ella son las siguientes:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. 94. my $filename= "$col"."\-"."Sequences"."$$"."$^T"."\.txt";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. 97. open  SALIDA,'>>'."C:/xampp/htdocs/DB/Results/$filename" or die "ERROR: $!\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor explorer » 2011-11-21 10:45 @490

El error se refiere a que la variable $filename está contaminada, porque, a su vez, alguna de las variables $col y $sequences también lo están.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor Alfumao » 2011-11-23 04:48 @242

Hola explorer,

Leí el documento de perlsec y siguiendo sus instrucciones hice lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $col= param('subunit');
  2.  
  3. ############UNTAINTING $col####################  
  4.     if ($col =~ /^([-\@\w.]+)$/) {
  5.     $col = $1; # $data now untainted
  6.     } else {
  7.     die "Bad data in '$col'"; # log this somewhere
  8. ################################################
  9.     }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Ahora me funciona el CGI sin problemas, aunque retarda un segundo la carga de la estructura del HTML/CSS de la web.

Deduzco que he de hacer lo mismo con todas las variables aunque entren a través de un formulario al CGI, ¿correcto?
Alfumao
Perlero nuevo
Perlero nuevo
 
Mensajes: 178
Registrado: 2009-12-10 11:20 @514

Re: Problemas con Taint mode en CGI usando Perl 5.14 en Windows

Notapor explorer » 2011-11-23 06:32 @314

Precisamente, por ser datos que recibimos a través de un formulario, es cuando más atención debemos prestar.

Todas ellas, contaminadas ;)

Lo que me extraña es lo que dices que tarde un segundo en cargar el HTML/CSS.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados