我在php应用程序中编写了一个bug提交类。我想在抛出异常时捕获整个$_SERVER
,如果用户决定提交错误报告,请将$_SERVER
数组存储在数据库中,并提供其他有用信息,如问题描述,时间等。
我计划将捕获的$_SERVER
传递给$_SESSION
中的错误报告表单,但我担心如果我这样做,我会暴露可用于利用我的系统的数据。举几个名字:
SERVER_SOFTWARE
DOCUMENT_ROOT
我是否将自己置于危险之中?
答案 0 :(得分:1)
我认为这样的课程没有意义 为什么用户干预,如果您的代码可以自动,安全,准确地存储所有相关信息?
为什么不能在抛出异常时在异常处理程序中记录所有相关信息?
从字面上回答你的问题 - 是的,一些服务器信息被认为是敏感的 虽然我认为没有办法公开它,除非您对错误报告的想法是要求用户通过他们自己的电子邮件发送报告文本。
答案 1 :(得分:-1)
不需要上课。
而是将此模板用于您的脚本:
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.
}
此模板不会将您网站的任何内部工作方式暴露给远程客户端 - 不会产生任何安全隐患。