in reply to Re: prevent perl script running from browser
in thread prevent perl script running from browser

Thank you. Is there some code I can put at the top of the script to check that it is being fun from the server and quit if it's not? I would rather not move it outside of cgi-bin and not sure that would solve the problem anyway unless it were moved outside the public_html directory.
  • Comment on Re^2: prevent perl script running from browser

Replies are listed 'Best First'.
Re^3: prevent perl script running from browser
by NetWallah (Canon) on Oct 01, 2017 at 05:38 UTC
    One possibility is that you could examine the HTTP_REFERRER.

    When called from a web page, this is usually set.

    If your "server" calls do not set this, or set it to a specific valye, you could use this as a detection mechanism.

    Your question is a little strange, so I will not comment on the relative in-security of this method.

                    All power corrupts, but we need electricity.

      You alter/assign referrer, either in perl scripting or browser plugin.

        You alter/assign referrer, either in perl scripting or browser plugin.

        Yes, but that does not matter. The idea is that $ENV{'HTTP_REFERER'} is set to some nonsense only if running as CGI. Unfortunately, this is not entirely true. Clients can choose not to send a Referer header, so you might run a CGI with $ENV{'HTTP_REFERER'} not set. Using $ENV{'GATEWAY_INTERFACE'} should be reliable. It is set by the webserver, it is always set, and it is set to a constant value independent from the HTTP request.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)