in reply to Re: Re: PerlPlusPlugin: Security CGI problems
in thread PerlPlusPlugin: Security CGI problems

I'm not sure it will work that way, with the ppl files in the CGI directory. Apache will try to run it as a CGI script and PerlPlusPlugin will never get a chance at it.

I configured a separate perl directory with Apache. You could also use a home directory for the scripts.

Alias /perl/ /var/www/perl/

Replies are listed 'Best First'.
Re: Re^3: PerlPlusPlugin: Security CGI problems
by basm101 (Acolyte) on Feb 21, 2003 at 17:56 UTC
    ahh that makes sense...I have a perl_scripts folder within my public_html directory and I could put the tk script in there.
    Can I use a perl program as a URL ? I thought all URLs ended in .cgi or .html Perhaps I need to ask my system admin guy
    to setup a perl directory with Apache ?
    or can I just call up the perl scripts from wherever they are in my home user area ?
    eg.
    $URL_ROOT="/basm101/public_html/perl_scripts";
    What's this Alias thing mean ?
    thanks again for your help,
    basm101
      I believe they would work from a public_html directory. You should spell out the whole URL. The sample directory that comes with PerlPlusPlugin has something like this in it:
      $URL_ROOT="http://www.Lehigh.EDU/~sol0/ptk/ppl";
      URL's can end in many things. In fact, that's how the browser knows how to deal with the file. You need to have something like this in apache-mime.types:
      application/x-perlplus ppl
      And of course you have to have the plugin installed for your Netscape browser (e.g. set it up in Preferences/Helper Applications).

      The Alias stuff is for the Apache configuration file, to allow you to have extra directories for things. I wouldn't bother with it since you can put them in your public_html directory instead.

        hmm well I still don't know what Im doing wrong ! I decided to put a perl_scripts directory
        within my cgi-bin directory and go to that URL. I still get the error
        "Error:security level=60! ERROR:Attempt to execute unauthorized application failed"

        I wanted to look in the log and I stuck to the default path for it which was this:
        open(LOG, ">>/tmp/perlplus-secure.log");
        Should that write to the tmp directory on my system ? I looked in the tmp directory
        where all stuff like cookies from the web etc. goes..but its not there

        In fact in case it helps you help me here is the whole cgi security script:
        use CGI; $q = new CGI; open(LOG, ">>/tmp/perlplus-secure.log"); $url = $q->param('URL'); print LOG "URL=" . $url . "\n"; # Some potentially useful environment variables you can play with: # # DOCUMENT_ROOT=/ahome # GATEWAY_INTERFACE=CGI/1.1 # HTTP_HOST=www.xyz.edu # HTTP_REFERER=http://www.xyz.EDU/~sol0/ptk/plop.ppl # HTTP_USER_AGENT='Mozilla/4.5C-SGI [en] (X11; I; IRIX 6.3 IP32)' # REMOTE_ADDR=a.b.c.d # REMOTE_PORT=12801 # REQUEST_METHOD=POST # REQUEST_URI=/cgi-bin/perlplus-secure.cgi # SCRIPT_FILENAME=/home/wwwserv/cgi-bin/perlplus-secure.cgi # SCRIPT_NAME=/cgi-bin/perlplus-secure.cgi # SERVER_NAME=www.xyz.EDU # SERVER_PORT=80 # SERVER_PROTOCOL=HTTP/1.0 # SERVER_SOFTWARE=Apache/1.2.6 # This example varies the security level as required for the sample pl +ugins: #$URL_ROOT="http://www/~eserte/ppl"; #$URL_ROOT="http://www.Lehigh.EDU/~sol0/ptk/ppl"; $URL_ROOT="http://myhost/~basm101/cgi-bin/perl_scripts"; %url = ("$URL_ROOT/neko.ppl" => 3, "$URL_ROOT/plop.ppl" => 3, "$URL_ROOT/y2k.ppl" => 3, "$URL_ROOT/thunder.ppl" => 3, "$URL_ROOT/ptk_test.ppl" => 3, "$URL_ROOT/quest.ppl" => 3, "$URL_ROOT/tktetris.ppl" => 3 ); $sec_level= $url{$url} || 1; print LOG " security level=$sec_level\n"; close LOG; print "Content-type: application/x-perlplus:.ppl:Perl\n\n"; print "$sec_level";
        I did screw around with the numbers, but I think level 3 means the script
        should execute.
        thanks again for your help,
        basm101