Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 怪异的拉威尔安全行为_Php_Laravel_Amazon Ec2 - Fatal编程技术网

Php 怪异的拉威尔安全行为

Php 怪异的拉威尔安全行为,php,laravel,amazon-ec2,Php,Laravel,Amazon Ec2,我正在amazon上运行一个EC2实例和一个RDS实例,一切正常。我升级了RDS的实例类型,并像我经常做的那样偶尔更改主密码但在修改之后,我尝试登录我的应用程序(比如,在我单击“立即修改”后30秒),然后才更改了laravel.env文件中的db凭据,突然,我看到一个错误页面,在我更新到.env文件中正确的db凭据之前,它完全暴露了我在这2-3分钟内的db凭据。不用说,在这段时间内,至少有几十人试图访问我的应用程序。 所以我想知道这是我自己做的一个糟糕的安全实践,还是拉雷维尔的缺陷还没有处理好

我正在amazon上运行一个EC2实例和一个RDS实例,一切正常。我升级了RDS的实例类型,并像我经常做的那样偶尔更改主密码
但在修改之后,我尝试登录我的应用程序(比如,在我单击“立即修改”后30秒),然后才更改了laravel.env文件中的db凭据,突然,我看到一个错误页面,在我更新到.env文件中正确的db凭据之前,它完全暴露了我在这2-3分钟内的db凭据。不用说,在这段时间内,至少有几十人试图访问我的应用程序。
所以我想知道这是我自己做的一个糟糕的安全实践,还是拉雷维尔的缺陷还没有处理好

错误消息如下所示-(我用realUserName/realPassword和realDbName替换真实凭据,并且主机名也被审查)

许多人(包括我)已经通知Laravel开发人员,您从未在HTTP响应中打印凭据,但开发人员似乎并不在意。事实上,它是世界上唯一一个认为可以在调试页面中打印关键信息的框架

另一方面,如果您确实决定使用Laravel,那么有一个软件包可以反驳这一点:它非常容易设置,只需确保您不会忘记应用程序->扩展指令。在生产服务器上,您不能运行“composer安装”,而是运行“composer安装--无开发”。这样,filp/whoops将(希望如此)不会被安装,也不会被触发


作为旁注:开发人员声称当APP_DEBUG=false时不会出错,但正如您所指出的,当禁用调试模式时,可以触发whoops处理程序。还有一种情况:

您是否阅读了整个问题?是否可能在修改.ENV?@Brotzka时更改了APP_ENV或APP_DEBUG?在.ENV文件中没有DEBUG的值。我在app.php中使用了fallback值,它是false。这绝对是一个奇怪的情况。您应该考虑立即运行Cache:清除和配置:清除,您是否应该再次更改这些设置。对于那些已经接触到我的db凭据的人来说,这是一个怎样的解决方案?。。尽管如此,在我的bootstrap/cache文件夹中没有config.php,所以我真的不知道它将清除什么配置。在将来,最好还是坚持回答这个问题,而不是咆哮。我大声喊叫,因为里面隐藏着答案。
Whoops, looks like something went wrong.
1/1
PDOException in Connector.php line 55:
SQLSTATE[28000] [1045] Access denied for user 'realUserName'@'172.**.**.***' (using password: YES)
    1.  in Connector.php line 55
    2.  at PDO->__construct('mysql:host=testApp.*****.us-east-1.rds.amazonaws.com;dbname=realDbName', 'realUserName', 'realPassword', array('0', '2', '0', false, '0')) in Connector.php line 55
    3.  at Connector->createConnection('mysql:host=testApp.*****.us-east-1.rds.amazonaws.com;dbname=realDbName', array('driver' => 'mysql', 'host' => 'testApp.******.us-east-1.rds.amazonaws.com', 'database' => 'realDbName', 'username' => 'realUserName', 'password' => 'realPassword', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 24
    4.  at MySqlConnector->connect(array('driver' => 'mysql', 'host' => 'testApp.****.us-east-1.rds.amazonaws.com', 'database' => 'realDbName', 'username' => 'realUserName', 'password' => 'realPassword', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in ConnectionFactory.php line 61
    5.  at ConnectionFactory->Illuminate\Database\Connectors\{closure}()
    6.  at call_user_func(object(Closure)) in Connection.php line 924