Nice to know, that people with an academic degree in computer science and a 
certificate of IT security are called "script-kiddy" on this mailing list.

--
Deutsche Telekom AG
Seamless ICT Security Infrastructure & Management
im Auftrag T-Systems International GmbH
Dipl. Inf Alexander Elgert
Langwadener Strasse 17
64625 Bensheim
+49 176 22 717 661 (Mobil)
+49 671 83419-12 (Tel)
+49 671 83419-30 (Fax)
E-Mail: alexander.elg...@gmx.de

________________________________________
Von: André Warnier [a...@ice-sa.com]
Gesendet: Mittwoch, 16. Mai 2012 17:07
An: mod_perl list
Betreff: Re: AW: AW: AW: AUTH password

alexander.elg...@t-systems.com wrote:
> Thank you, it works.
>
> ------------------------------------------------------------------------------
> # http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html
> use CGI;
> #use Apache ();
> #use APR::Base64;
> use Apache2::Access ();
> use Apache2::RequestRec ();
> use Apache2::RequestUtil ();
>
> my $q = CGI->new;
> #print $ENV{MOD_PERL_API_VERSION} . "\n";
> #my $r = Apache->request();
> my $r = Apache2::RequestUtil->request(); #httpd.conf # get the global request 
> object (requires PerlOptions +GlobalRequest)
> $pw = $r->headers_in->{Authorization};
> #$pw =~ s/^Basic //;
> #$pw = APR::Base64::decode($pw);
>
> print $q->header();
> #print "Apache->request: ". $pw . "<br>\n";
>
> (my $rc, $pw)=$r->get_basic_auth_pw;
> print "Apache2 Access get_basic_auth_pw: " . $pw . "<br>\n";
> ----------------------------------------------------------------------------------
>

There you go.

About all the rest, and the obviously unwelcome comments you got before :

Your initial post was very short on details, and sounded like you thought that 
being able
to get the user's password after a web authentication was a universal truth, 
via a cgi-bin
"HTTP_AUTHORIZATION" environment value.
That, and you reference to a one-line PHP script command, frankly made it sound 
like
something coming from a "script-kiddie".

That is why you got these comments related to security, authentication methods, 
SSL etc..

HTTP headers of a request are not normally available to a cgi-bin script.
CGI environment values are only there if the httpd server (or some other add-on 
module)
puts them there before running the script. Some of these environment values may 
be derived
from original HTTP request headers, but the relationship is not one-to-one.
The user's authentication password is certainly not contained in any standard 
CGI
environment value.
The user's authentication password is only available from a HTTP request 
header, if the
web authentication method used is HTTP Basic Authentication.  In all other 
serious web
authentication methods, the password is not transmitted over the net, encrypted 
or not.
So it is generally not possible for anything running in a webserver, to get to 
that
password in clear; and rightly so, because people tend to use the same password 
for any
2-cent web application, as they use to login to their corporate servers.

In other words, if you build your application on the premise that you can get 
and use the
user's password to encrypt something with it, then your application will not be 
portable
to any serious context.
Also, if your application has parts running under SSL and parts that don't, 
then as a
whole it is as insecure as the non-SSL part.  It is the weakest part that 
determines the
security level, not the strongest part.
The same about implementing security "step by step".  If you start running your
application insecurely, then by the time you make it secure, the user's 
passwords will
already have been stolen, and can be re-used in the secure version.  Are all 
users going
to change their passwords then ?

In summary, the code above is good as an exercise for mod_perl.  Is it 
recommended for any
real application ? certainly not.
Believe it or not, people on this list are only trying to help you, for example 
in not
writing code that you'll have to rewrite later.

Reply via email to