0x00:简介
Laravel是一套简洁、优雅的PHPweb开发程序框架,并且具有简洁的表达,是一个比较容易理解且强大的,它提供了强大的工具用以开发大型网站的应用。
这么说吧,家人们 我又来了!
不求刷火箭
多转发我的文章就是给我最大的火箭!
0x01:过程
很多开发人员在测试网站服务的时候,一般会去安装Whoops样式错误处理器。方便开发人员边调试边查找错误的信息。
一般是在app/Exceptions/Handler.php
, 在render()
方法中添加一个Whoops样式的处理情况,像下面这样
/**
* Render an exception into an HTTP response.
*
* @param IlluminateHttpRequest $request
* @param Exception $e
* @return IlluminateHttpResponse
*/
public function render($request, Exception $e)
{
if ($this->isHttpException($e))
{
return $this->renderHttpException($e);
}
if (config('app.debug'))
{
return $this->renderExceptionWithWhoops($e);
}
return parent::render($request, $e);
}
/**
* Render an exception using Whoops.
*
* @param Exception $e
* @return IlluminateHttpResponse
*/
protected function renderExceptionWithWhoops(Exception $e)
{
$whoops = new WhoopsRun;
$whoops->pushHandler(new WhoopsHandlerPrettyPageHandler());
return new IlluminateHttpResponse(
$whoops->handleException($e),
$e->getStatusCode(),
$e->getHeaders()
);
}
使用Whoops错误库来显示WhoopsHandlerPrettyPageHandler()中
直接显示在前端就会导致任意访问者就能看到错误信息
如果报错信息存在敏感信息
恶意着就会进行下一步的利用
例如
老规矩
Navicat走起
来看看有多少铁憨憨
但是不排除蜜罐的情况
一键排除蜜罐
7000 ???
但不是每个Laravel开发都是铁憨憨
有得则是显示不算敏感的信息
有的则是
别问 为什么是127.0.0.1
问就是
爱过、保大、救我妈、我妈会游泳
0x02:修复建议
代码语言:javascript复制$run->pushHandler(function($exception, $inspector, $run) {
var_dump($exception->getMessage());
return Handler::DONE;
});
替换var_dump($exception-> getMessage());使用自定义代码保存到数据库或文件日志中,从日志或者数据中来看报错信息