2017-02-03 3 views
0

Ich habe eine Reihe von schlecht geschriebenen Perl-Programmen, die meine Webseiten bedienen. Gelegentlich stürzen sie und der Benutzer sieht ...Wie man Programmabstürze mit HTTP-Fehlercode 500 einreiht

Softwarefehler: Yadda yadda yadda. Wenn Sie Hilfe benötigen, senden Sie eine E-Mail an den Webmaster ([email protected]). Geben Sie diese Fehlermeldung und die Uhrzeit und das Datum des Fehlers an.

Ich habe keinen Zugriff auf diese E-Mail-Adresse und selbst wenn ich diese freche Benutzer konnte nicht vertrauenswürdig sein, diesen Fehler zu melden.

Also, was ich möchte, ist zu tun, um diese Fehlermeldung zu erhalten, einen HTTP-Fehler 500, auslösen, so dass ich es mit einer Linie in der .htaccess-Datei wie überwachen ...

Errordocument 500 /fixThisBug.shtml

+1

1) Finden Sie die Dateien, die "[email protected]" enthalten 2) Ändern Sie den Code zu "sterben" statt eine Nachricht zu drucken 3) Aktualisieren Sie Ihre Apache-Konfiguration – ThisSuitIsBlackNot

+1

(In anderen Worten, beheben Sie die Ursache des Problems anstatt zu versuchen, es zu hacken.) – ThisSuitIsBlackNot

+0

Willst du sagen, dass diese Nachricht von den Perl-Programmen selbst erzeugt wird? Sicherlich ist diese E-Mail-Adresse in keinem der Perl-Skripte enthalten. Ich verstehe nicht, warum ich diesen Fehler anstelle des HTTP 500 bekomme. – Melchester

Antwort

1

Dank ThisSuitIsBlackNot für die Richtung.

Die Perl-Programme haben alle

use CGI::Carp(fatalsToBrowser); 

, die den HTTP-Fehler 500 Kniegelenke. Wenn Sie das einfach entfernen, können die Programme "richtig" abstürzen.

+0

Gut finden. 'fatalsToBrowser' sollte niemals in der Produktion aktiviert werden, da es potenziellen Angreifern Details über die Interna Ihrer Skripte aufzeigen kann. Wenn 'fatalsToBrowser' nicht wirklich in Anführungszeichen oder in' qw' steht, bedeutet das, dass Ihre Skripts nicht 'strict;' verwenden. – ThisSuitIsBlackNot

Verwandte Themen