安全性:我应该在文档根目录之外移动vendor dir和composer.json吗?

时间:2014-05-10 10:38:01

标签: composer-php vendor

  1. 刚开始与作曲家合作。
  2. 将一些作曲家的东西安装到我的<documentroot>/vendor/目录中。

  3. 现在,每个人(每个黑客)都可以阅读我的composer.json http://foo.tld/composer.json

  4. 然后他们知道,安装了哪个软件。然后,他们可以使用http://foo.tld/vendor/symfony/等网址探测我的<documentroot>/vendor/目录。

  5. 我该怎么办?

    a)我可以:

    • chmod 0600 composer.json
    • .htaccess放入供应商目录,拒绝所有访问

    b)将供应商目录移到文档根目录之外(在共享主机环境中并不总是这样。

2 个答案:

答案 0 :(得分:7)

您应将其移出DOCUMENT_ROOT。

框架应用程序的通常结构是顶级目录(包含stuff和composer.json文件)不是DOCUMENT_ROOT。那里有一个专门的目录,里面可能有一个名为“public”或“htdocs”,里面包含“the”中央index.php文件旁边的所有常用资产(CSS,JS,pics)。

如果你无法通过共享主机获得该布局,那么你可能应继续前进,因为你无法在那里隐藏直接HTTP访问文件。

答案 1 :(得分:0)

您在示例链接中提到了Symfony。如果您正在使用Symfony,如果您的项目位于... / project中,那么您的文档根目录是... / project / web,这就是您告诉Apache或您所使用的服务器的内容使用。其他一切都是你的应用程序&#34; (让我们称之为),并且不需要向公众提供。