Michael Schröpl: SSI-Aufruf (unable to include...)

Beitrag lesen

Hi Claus,

Hab's jetzt rausbekommen. Problem liegt bei der SUB, welche auf illegalen Zugriff überprüft. Die stammt aus einem O'Reilly-Buch
und hat da wohl zugeschlagen.
Beim dortigen print "<HTML><BODY>..." fehlt wohl das
print "Content-type: text/html\n\n";

das ist auch nicht der Job dieser Funktion.

Dein Hauptprogramm sollte diese Header in jedem Falle schon ganz am Anfang ausgeben, _damit_ das aktuelle Problem eben gerade nicht auftreten kann.
Diese Prüf-Funktion muß sich darauf verlassen können, daß sie HTML-Code ausgeben darf - ändere daher nicht diese Funktion, sondern das Hauptprogramm.

unless ( $ENV{ HTTP_REFERER } =~ m|^http?://$server/| ) {
   print "<HTML><BODY>Nicht erlaubt auf den Counter zuzugreifen!</BODY></HTML>";
   exit 0; }

Diese Abhängigkeit vom HTTP_REFERER erklärt, wieso der Fehler bei der direkten Eingabe in der URL-Zeile auftritt und bei der Einbindung via SSI nicht.
Würdest Du das Senden des Referers in Deinem Browser abschalten, dann würde der Fehler _immer_ auftreten - es ist gefährlich, sich auf das Vorhandensein des Referers zu verlassen ...

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
 => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.