a linha printf "$prompt: Password ok? %d\n", $is_ok;

é que seta $is_ok = 4 (no exemplo do site) pq $prompt contem ‘%n’ dentro dele e 
%n, no printf, faz com q a prox $var, no caso, $id_ok receba 4 que o tamanho do 
string.

veja explicacao na propria pagina:

... the %n instructed Perl to fill the first format string argument with the 
number of characters printed, which caused Perl to set the $is_ok variable to 
4.....


veja on-liner abaixo:

perl -e "my $prompt='1234567%n'; my $password='xxxx'; my $is_ok = ($password eq 
'goodpass'); printf \"$prompt: Password ok? %d\n\", $is_ok; print $is_ok;"
1234567: Password ok? 0
7


            Ulisses Gomes
      Tecnologia da Informação

      IBIZ Tecnologia
      +55 11 5579-3178 r. 226
      ulis...@ibiz.com.br
      www.ibiz.com.br  

 



Esta mensagem de correio eletrônico e seus documentos anexos estão dirigidos 
EXCLUSIVAMENTE aos destinatários especificados. A informação contida pode ser 
CONFIDENCIAL e/ou estar LEGALMENTE PROTEGIDA e não necessariamente reflete a 
opinião da IBIZ. Se você receber esta mensagem por ENGANO, por favor, comunique 
imediatamente ao remetente e ELIMINE-A já que você NÃO ESTÁ AUTORIZADO ao uso, 
revelação, distribuição, impressão ou cópia de toda ou alguma parte da 
informação contida. Obrigado. 


From: Solli Honorio 
Sent: Friday, January 11, 2013 10:26 AM
To: Perl Mongers Rio de Janeiro 
Subject: Re: [Rio-pm] Padrões de Código seguro

perldoc -f sprintf  

%n    special: *stores* the number of characters output so far into the next 
variable in the parameter list

Agora, o que isto significa, não tenho idéia :D !!!



Em 11 de janeiro de 2013 10:22, Tiago Peczenyj <tiago.pecze...@gmail.com> 
escreveu:

  Divertido 

  alguem pode  me explicar o %n ?

  
https://www.securecoding.cert.org/confluence/display/perl/IDS30-PL.+Exclude+user+input+from+format+strings


  2013/1/11 <thiagogla...@ticursos.net> 


    Caros monges, a Cert (www.cert.org) desenvolve padrões e recomendações de 
segurança para a área de TI.
    Achei bem interessante, pois eles têm recomendações para C, C++, Java e 
Perl.

    www.securecoding.cert.org

    Os padrões para Perl e C++ ainda estão em desenvolvimento. Eles aceitam 
pitacos.

    regards.
    _______________________________________________
    Rio-pm mailing list
    Rio-pm@pm.org
    http://mail.pm.org/mailman/listinfo/rio-pm





  -- 
  Tiago B. Peczenyj
  Linux User #405772

  http://about.me/peczenyj 

  _______________________________________________
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm





-- 
"o animal satisfeito dorme". - Guimarães Rosa 


--------------------------------------------------------------------------------
_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Responder a