Apache 如何捕获HTTP错误代码为500的程序崩溃
我的网站上有许多编写糟糕的perl程序。偶尔它们会崩溃,用户会看到 软件错误: 雅达雅达雅达。 如需帮助,请向网站管理员发送邮件(webmaster@mywebsite.com),给出此错误消息以及错误的时间和日期 我没有访问该电子邮件地址的权限,即使我访问了,也不能信任那些淘气的用户报告此错误 所以我想做的是让这个错误触发HTTP错误500,这样我就可以用htaccess文件中的一行来监视它,比如Apache 如何捕获HTTP错误代码为500的程序崩溃,apache,.htaccess,perl,http,server,Apache,.htaccess,Perl,Http,Server,我的网站上有许多编写糟糕的perl程序。偶尔它们会崩溃,用户会看到 软件错误: 雅达雅达雅达。 如需帮助,请向网站管理员发送邮件(webmaster@mywebsite.com),给出此错误消息以及错误的时间和日期 我没有访问该电子邮件地址的权限,即使我访问了,也不能信任那些淘气的用户报告此错误 所以我想做的是让这个错误触发HTTP错误500,这样我就可以用htaccess文件中的一行来监视它,比如 ErrorDocument 500/fixThisBug.shtml感谢此套件,而不是方向 pe
ErrorDocument 500/fixThisBug.shtml感谢此套件,而不是方向 perl程序都有
use CGI::Carp(fatalsToBrowser);
这扼杀了HTTP 500错误。只要删除此项,程序就会“正常”崩溃。1)找到包含webmaster@mywebsite.com“2)将代码更改为
die
而不是打印消息3)更新Apache配置(换句话说,修复问题的根本原因,而不是试图绕过它。)您是说这个消息是由perl程序本身生成的吗?当然,该电子邮件地址不包含在任何perl脚本中。我不明白为什么我得到的是这个错误而不是HTTP 500错误。很好的发现<不应在生产环境中启用code>fatalsToBrowser,因为它会向潜在攻击者透露脚本内部的详细信息。另外,如果fatalsToBrowser
真的没有被引用,或者在qw
中,这告诉我你的脚本没有使用严格的代码>。