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