Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为';php';文件_Php_Mysql_Encryption_Passwords_Password Protection - Fatal编程技术网

为';php';文件

为';php';文件,php,mysql,encryption,passwords,password-protection,Php,Mysql,Encryption,Passwords,Password Protection,由于我的服务器越来越大,越来越多的用户访问它,我不想让他们看到MySQL用来连接PHP的密码,它存储在我的“connect.PHP”文件中,每个页面都需要。但是,它只是与其他php文件位于同一目录中 我曾考虑过使用第二个类似于“connect.php”的文件,该文件只访问一个表,存储连接到MySQL的加密密码,但这样我就有了隐藏密钥的问题 更改权限也不会起作用,如果您chmod o-r或类似的东西,显然没有人能够访问web应用程序 有没有公认的方法来解决这个问题,还是我应该自己解决?问题是,如果

由于我的服务器越来越大,越来越多的用户访问它,我不想让他们看到MySQL用来连接PHP的密码,它存储在我的“connect.PHP”文件中,每个页面都需要。但是,它只是与其他php文件位于同一目录中

我曾考虑过使用第二个类似于“connect.php”的文件,该文件只访问一个表,存储连接到MySQL的加密密码,但这样我就有了隐藏密钥的问题

更改权限也不会起作用,如果您
chmod o-r
或类似的东西,显然没有人能够访问web应用程序


有没有公认的方法来解决这个问题,还是我应该自己解决?问题是,如果有一个可接受的方法,我不希望它太复杂。

我强烈建议将
connect.php
移动到
文档根目录上方的一个目录中,这样就无法从web服务器访问它

您的php文件当然可以包括带有完整或相对路径的
connect.php
,例如:

require_once('../connect.php');

设置
$password
,连接,然后
unset()
$password
。他们应该永远无法恢复。
我认为PHP文件无论如何都不能下载,也看不到。以前它总是由服务器编译。

服务器端文件的内容用户无法获取,除非您自愿(或错误地)向他们显示


最有可能的妥协是通过FTP访问,在这种情况下,黑客无论如何都可以访问Web服务器上的所有文件。

将其移动到www根目录后的文件夹,如www/includes。 从那里,您可以使用htaccess阻止在/includes下查看文件的权限

连接到SQL数据库后,请使用unset($username,$password),这样就不会有人回显密码的用户名,从而造成安全威胁


最后,最好有专门的主机,这样就没有其他人可以访问web服务器来查看其他用户的文件。

所有的答案都有很好的建议,但没有解决这样一个事实,即任何具有服务器访问权限的用户都可以在编辑器中窥探并打开config.php

在公共Web空间之外的目录中设置配置文件,Web服务器应该是此目录的所有者,并且其权限应设置为700。它包含的所有文件都应该是644。这样,除了webserver用户或root用户之外,没有人能够读取文件内容


这是一种常见的方法,但由于安全性是一个非常广泛的主题,因此该主题还有很多内容,但比90%的设置要好

或者,您可以完全删除密码,并将DB服务器配置为只接受本地主机的连接。但是,这只适用于专用主机,如果您使用共享主机,则存在安全风险。

您将为用户提供何种访问权限,以便他们能够首先看到PHP源代码?其他开发人员可以访问Linux box本身。在这种情况下,我们假设root:root是所有者,对吗?所以,当我试着按你说的方式修改它时,网站被限制了,所以没有人能看到它。在哪个发行版上?在许多linux发行版上,apache用户是www数据,因此www数据将无法打开root的文件夹。使用
top
ps
并检查apache运行时的用户,即必须拥有配置文件夹的用户。这是我所知道的配置文件最严密、最有效的安全措施。现在使用Ubuntu,直到我们得到硬件升级。查看这些建议。在Ubuntu上,根据文档
用户的默认值是www-data。
确保在网页外有config文件夹,并将该文件夹添加到php.ini中。这样效果最好。非sudoers完全无法查看connect.php,这真是太棒了。非常感谢。这似乎是最简单的第一步。PHP运行时瞬间失败,导致Apache以明文形式发送文件,这已经发生了很多次(我相信最近在Flickr或类似的大型网站上发生过),如果出于某种原因,您允许第三方代码在同一个PHP实例上/在同一组脚本中运行,那么这可能会有任何价值,在这种情况下,您可能需要考虑一百万其他安全原因。