我计划在Laravel构建一个多租户应用程序,其主子域包含相关的公共文件,并为每个将拥有自己的数据库指向“主”文件的客户提供一个子域。我计划尽可能自动化地这样做,例如你点击一个按钮,一个子域被创建,一个数据库被创建,相关的配置文件被设置。所有这些都很好,但我不确定我的实践是否最好使用,以及它是否存在安全问题。
在bootstrap/start.php文件中,我有以下内容:
$env = $app->detectEnvironment(array(
$_SERVER['SERVER_NAME'] => array($_SERVER['SERVER_NAME'])
));这在本质上意味着test.example.co.uk的环境是test.example.co.uk。我的安装脚本将在'app/ config‘中创建一个配置目录'test.example.co.uk`’,并在那里添加相关的数据库配置。
这一切都像我预期的那样起作用,所以我只是在寻求建议,这有什么漏洞吗?
只是为了添加-用户将不能使用安装脚本,这只是为开发人员。
发布于 2014-02-01 22:00:50
我不认为你的代码有任何安全问题。我注意到的一件事是,你把自己限制在一个环境里。以下是我的env设置:
$env = $app->detectEnvironment(function()
{
return getenv("ENV") ? : "local";
});现在,我的环境将被自动检测--在服务器上,我以getenv函数的形式提供了“钩子”,而在本地机器上,它是本地。另外,为了获得更大的灵活性,我将向detectEnvironment发送回调,而不是数组。
https://stackoverflow.com/questions/21502152
复制相似问题