Php 在同一文件夹中放置密码是否安全?

Php 在同一文件夹中放置密码是否安全?,php,database,passwords,store,Php,Database,Passwords,Store,我正在使用php和mysql。我有一个数据库配置文件(db config.php),其中有我的数据库名称、用户名和密码。我的应用程序和数据库配置文件存储在:www(httpdocs)/app/db-config.php 安全吗?其他人/黑客能否窃取我的文件并获取我的数据库登录信息 或者我应该把它放在www文件夹之外,例如:db-config.php存储在www(httpdocs)的同一级别文件夹中。因此,在我的应用程序中,我只需执行以下操作: include_once('../../db-con

我正在使用php和mysql。我有一个数据库配置文件(db config.php),其中有我的数据库名称、用户名和密码。我的应用程序和数据库配置文件存储在:www(httpdocs)/app/db-config.php

安全吗?其他人/黑客能否窃取我的文件并获取我的数据库登录信息

或者我应该把它放在www文件夹之外,例如:db-config.php存储在www(httpdocs)的同一级别文件夹中。因此,在我的应用程序中,我只需执行以下操作:

include_once('../../db-config.php');
这样行吗?我的意思是跳转2级到root/www/httpdocs文件夹


您是否有更安全的方法来存储数据库密码???

许多公开下载的PHP软件通常在www根文件夹下的目录中有带有DB密码的配置文件,只要您的服务器配置正确,就可以了

但是,对于任何敏感信息(如带有密码的配置文件),最好将其存储在文档根目录之外(标准做法是向上存储一个文件夹),这是我的建议


您还可以在将密码保存到配置文件之前对其进行预加密,然后让软件在使用之前对其进行解密(但这只会使您的密码存储在明文中--访问您文件源代码的黑客可以非常轻松地解密存储的密码).

希望密码不会打印到屏幕上,但最好还是将其放在不能通过web直接访问的目录中,是的。您的web应用程序最好使用具有最低必要权限的登录


我在chroot监狱中运行我的web应用程序,这意味着我最终通过本地TCP连接而不是通过套接字进行连接(例如,我使用“127.0.0.1”而不是“localhost”),因为从监狱内部看不到unix套接字

没有人能看到你的.PHP文件的源代码,密码放在任何地方都是安全的,特别是如果你把它放在你的网站文件夹中(你有完全的控制权),因为你没有把它放在公共ftp文件夹中


也许你可以把它放在public_html文件夹的上面一级,只是在[极端]的情况下,有人把httpd.conf搞砸了,PHP停止工作,这样就可以显示源代码了。

把include文件放在一个更高的级别就行了。我将它们放在/var/www中并使用

set_include_path(get_include_path() . PATH_SEPARATOR .'/var/www/'); require_once 'mysqli_connect.inc.php'; 设置包含路径(get包含路径().path分隔符'/var/www/'); 需要一次“mysqli_connect.inc.php”; 密码在mysqli_connect.inc.php中,但用户看不到php文件的源代码,因为php在将其发送到浏览器之前将其转换为HTML


大概您不允许浏览器查看文件夹的内容-没有Apache所称的“目录索引”。

如果您对web服务器有足够的控制权,我建议在PHP的include_path指令中添加一个目录。然后,你可以这样说:

在PHP.ini中

include_path=/home/xxxx/php_includes:blah.blah.blah
在/home/xxx/php\u中包括:

create a directory named "config"
create a file named "config/database_config.php"
在您的PHP文件中:

include_once("config/database_config.php")
易于包含,并且安全地位于web根目录之外

编辑:

您可以在运行时使用set\u include\u path命令执行此操作。另外,如果您使用的是Apache,我认为您可以通过在.htaccess文件中放置php_admin_value指令来设置目录(请参见)

是的,您可以将该文件放在相同或其他目录中 制作一个
配置文件
,可以将所有设置保存在一个文件中。。和 你可以把它放在任何你想放的地方。你只要随时打电话就行了

对于该配置文件,将文件权限设置为public不可访问

1.生成config.ini文件 2.移动并授予config.ini文件的权限 3.创建php或连接页面conn.php
在我的例子中,公共html文件夹上方是指www/httpdocs上方?好的,我试试看。感谢的不是“在”web根目录之上,而是完全在文档树之外。。如果您的web服务器出现问题,干扰了它识别PHP文件的方式,那么您的源代码最终肯定是可读的(web服务器将很乐意以纯文本的形式提供服务)。我同意@MadCoder。这种情况出人意料地频繁发生。
[local]
db_host = localhost
db_user = your_local_database_username
db_pass = **********
db_name = your_local_database_name


[server]
db_host = serverhost
db_user = your_local_database_username
db_pass = **********
db_name = your_server_database_name
<?php
$config_file_location_path = "/var/somelocation/config.ini"

$read_file = parse_ini_file($config_file_location_path, true);
$read_data = $read_file['local'];

$db_config = $read_data;

$db_host = $db_config['db_host'];
$db_user = $db_config['db_user'];
$db_pass = $db_config['db_pass'];
$db_name = $db_config['db_name'];


$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

if (!$conn) {
    die("Could not connect to server : " . mysqli_errno($conn));
}