【发布时间】:2016-07-02 23:05:27
【问题描述】:
当我在 Laravel 5.1 中抛出错误时,我想设置一条自定义消息显示给用户。例如,在控制器中我可能有:
if(!has_access()){
abort('401', 'please contact support to gain access to this item.');
}
然后我的自定义错误页面将显示错误:
$exception->getMessage();
但是,如果出现 SQL 错误或其他事件怎么办?那不是也设置了我会在我的错误页面上不知不觉地输出的异常消息吗?
PHP docs for getMessage() 没有详细说明这一点。
如何在不引入任何安全风险的情况下设置特定的异常消息?
【问题讨论】:
-
我不了解 laravel,但我使用的所有框架都包含一个
HttpException类(派生自Exception),并且 catch 块仅捕获该类的异常 @987654326 @。所以,我猜 Laravel 也是如此,因为它已经成为框架的一种普遍做法 -
可能是的,因为它可能会根据异常显示安全信息,例如用户登录详细信息....但是无论如何您都不应该在生产环境中显示堆栈跟踪,禁用您的应用程序调试设置
-
确实如此。我只是根据OP的具体函数调用
$exception->getMessage()回复的
标签: php security laravel exception-handling laravel-5.1