外部Webroot的定义

时间:2015-04-27 20:03:31

标签: php mysql

我一直在阅读有关安全保存具有我的mysql数据库连接密码的PHP文件的位置。我从论坛上了解到它应该保存在webroot上方的文件夹中。我有来自托管公司的云服务器。我可以访问root

公共文件的路径如下: -

 /var/www/vhosts/mydomain.co.uk/httpdocs/afile.php

假设我有一个名为sqlpassfile.php的PHP文件(包含我的密码)

以下是否可以作为安全存储的地方?即在vhosts之后名为Newfolder的新文件夹中

 /var/www/vhosts/NEWFOLDER/sqlpassfile.php

很抱歉一个简单的问题,但只是想确保其安全

由于

3 个答案:

答案 0 :(得分:1)

通常,人们只是将数据库连接信息保存在常规PHP文件中,例如,Wordpress将连接信息保存在wp-config.php中。只是因为没有人能够通过访问该php页面来查看您的密码,所以不会返回任何内容。

为了使其更安全,您可以在mod_php停止工作时禁用对php文件的访问。试试吧.htaccess

FORTRAN

还请看看这篇文章: Password in file .php

答案 1 :(得分:1)

你现在所有的PHP框架都会将它们的整个代码库存储在web根目录下。

它们不仅实际存储凭证等信息,而且还将应用程序的所有业务逻辑存储在Web根目录之外。然后,他们只允许访问Facade文件(大多数情况下是index.php或app.php),然后在控制器的帮助下处理每个请求并将您引导到正确的页面/内容,以及当然,网站将使用的所有静态内容(您的设计图片,您的CSS,您的js,......)。

例如:

  • Zend Framework确实使用了d = {"bob":[1,2,3,4], "anmol":[5,4,3,2,1], "jhon":[3,2,1,8,7]} new_sorted_list = sorted(d.keys(), key=lambda x: sum(d[x][-3:])/3) print new_sorted_list >>> ['anmol', 'bob', 'jhon'] for record in new_sorted_list: print record+" : "+str(sum(d[record][-3:])/3.0) >>> anmol : 2.0 bob : 3.0 jhon : 5.33333333333 文件夹,您可以在其中找到public和所有静态文件
  • Symfony确实使用index.php文件夹,您可以在其中找到两个文件webapp.php以及所有静态文件

所以在你的情况下你可以做

app_dev.php是服务器的Web根目录 /var/www/vhosts/example.com/httpdocs/存储您需要的所有PHP代码 /var/www/vhosts/example.com/app/存储您的所有配置文件,然后存储您可以调用的凭据文件/var/www/vhosts/example.com/app/config sql_config.php/var/www/vhosts/example.com/httpdocs/afile.php

答案 2 :(得分:0)

您的方法是否安全取决于服务器的配置,提供商通常不会非常擅长记录。

您的第一道防线是将基本上为confutation的数据保存在以.php扩展名命名的文件中。因此,如果可以从浏览器访问它,则Web服务器将执行该文件而不是返回数据。您当然希望您的数据至少有两级安全级别(每种级别都是您独立测试的)。

考虑您选择的路径,/var/www/vhosts/NEWFOLDER/sqlpassfile.php如果您从服务器请求http://NEWFOLDER/sqlpassfile.php会发生什么? (在大多数情况下,只有一次进入......)通常情况下,更好的做法就是保持网络服务器使用的目录。