我正在我的 php 应用程序中编写一个错误提交类。我想$_SERVER
在引发异常时捕获整个信息,如果用户决定提交错误报告,请将$_SERVER
数组与其他有用信息(如问题描述、时间等)一起存储在数据库中。
我计划将捕获的数据传递$_SERVER
给错误报告表单,$_SESSION
但我担心如果我这样做,我会暴露可用于利用我的系统的数据。命名一对:
SERVER_SOFTWARE
DOCUMENT_ROOT
我是不是把自己置于危险之中?
我认为这样的课程没有意义。
如果您的代码可以自动、安全、准确地存储所有相关信息,为什么还要用户干预?
为什么你不能在抛出异常时在异常处理程序中记录所有相关信息?
从字面上回答你的问题 - 是的,一些服务器信息被认为是敏感的。
尽管我认为没有办法公开它,除非您对错误报告的想法是要求用户通过他们自己的电子邮件发送报告文本。
该课程不是必需的。
而是将此模板用于您的脚本:
try {
// You usual script here - but do not use die - use throw new Exception(...)
// Could use include directive for example
// Of course you may need to re-throw some exceptions
} catch (Exception $e) {
// Here you can record the fault (i.e. details of the exception $e,
// server variables $_SERVER, S_SESSION and the like
// Now give the user the internal server error and a pretty message saying
// something along the lines that you are sorry and it is not their fault.
}
此模板不会向远程客户端公开您站点的任何内部工作 - 没有安全隐患。