我在亚马逊和RDS实例中运行EC2实例,一切正常。我升级了RDS的实例类型并且也改变了主密码,因为我经常偶尔做一次。
但是在修改本身之后,我尝试登录我的应用程序(比如,我点击后30秒)在我更改了laravel .env文件中的数据库凭据之前,我已经看到了一个错误页面完全暴露了我的数据库凭据在我将它们更新为.env文件中的正确数据之前的几分钟。不用说,在这段时间里,至少有几十个人可能试图访问我的应用程序
所以我想知道这是不是我自己做的不好的安全措施,还是一些尚未处理的laravel的缺陷?
错误消息看起来像这样 - (我用realUserName / realPassword和realDbName替换真实凭证,主机名也被审查)
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
答案 0 :(得分:2)
许多人(包括我在内)已经通知Laravel开发人员您从未在HTTP响应中打印凭据,但是开发人员似乎并不在乎。实际上,它是世界上唯一认为可以在调试页面中打印关键信息的框架。
如果另一方面,您还是决定使用Laravel,则有一个针对此问题的软件包:https://github.com/GlaivePro/Hidevara确实很容易设置,只需确保不要忘记app-> extend指令即可。在生产服务器上,不得运行“ composer install”,而必须运行“ composer install --no-dev”。这样,filp / whoops将(应该,希望)不会被安装并且无法被触发。
作为旁注:开发人员声称,当APP_DEBUG = false时,任何事情都不会出错,但是正如您所指出的,当禁用调试模式时,可以触发whoops处理程序。还有一种情况:https://www.google.com/amp/s/blog.hacken.io/dangers-of-laravel-debug-mode-enabled%3fhs_amp=true