trixta: cgi script nur von meiner domain aus ausführen

ich möchte, daß eines meiner cgi scripte nur von meiner domain aus ausführbar ist.

den code habe ich mir aus dem betreffenden csv-read-script und einem formmail script zusammengebastelt, welches dieses feature erlaubt. wenn ich nun das script von einer anderen adresse ausführen möchte gibt er jedoch nicht die vorgesehene fehlermeldung aus, sondern führt das script aus wie sonst auch. wie müßte der quellcode aussehen?

der fehlerhafte quellcode:

@referers = ('www.meine-domain.de','meine-domain.de');
&check_url;
sub check_url {

# Localize the check_referer flag which determines if user is valid.     #
    local($check_referer) = 0;

# If a referring URL was specified, for each valid referer, make sure    #
    # that a valid referring URL was passed to readcsvplus.                     #

if ($ENV{'HTTP_REFERER'}) {
        foreach $referer (@referers) {
            if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
                $check_referer = 1;
                last;
            }
        }
    }
    else {
        $check_referer = 1;
    }

# If the HTTP_REFERER was invalid, send back an error.                   #
    if ($check_referer != 1) {

alles darüber ist script vom fomrmail und die anweisung der fehlerausgabe ist vom anderen script.

&produce_error( 8, url() );
     &logging("URL refferer does not contain any of enabled domains");
     die;
  }
}

  1. ich möchte, daß eines meiner cgi scripte nur von meiner domain aus ausführbar ist.

    den code habe ich mir aus dem betreffenden csv-read-script und einem formmail script zusammengebastelt, welches dieses feature erlaubt. wenn ich nun das script von einer anderen adresse ausführen möchte gibt er jedoch nicht die vorgesehene fehlermeldung aus, sondern führt das script aus wie sonst auch. wie müßte der quellcode aussehen?

    der fehlerhafte quellcode:

    @referers = ('www.meine-domain.de','meine-domain.de');
    &check_url;
    sub check_url {

    # Localize the check_referer flag which determines if user is valid.     #
        local($check_referer) = 0;

    # If a referring URL was specified, for each valid referer, make sure    #
        # that a valid referring URL was passed to readcsvplus.                     #

    if ($ENV{'HTTP_REFERER'}) {
            foreach $referer (@referers) {
                if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
                    $check_referer = 1;
                    last;
                }
            }
        }
        else {
            $check_referer = 1;
        }

    # If the HTTP_REFERER was invalid, send back an error.                   #
        if ($check_referer != 1) {

    alles darüber ist script vom fomrmail und die anweisung der fehlerausgabe ist vom anderen script.

    &produce_error( 8, url() );
         &logging("URL refferer does not contain any of enabled domains");
         die;
      }
    }

    machs doch ni so kompliziert:

    if ($ENV{HTTP_REFERER} =~ /$ENV{SERVER_NAME}/) {

    aufruf von deiner seite

    } else {
    #aufruf von einer anderen seite
    }